有可能在Java中为Android实现模型-视图-控制器模式吗?
或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?
有可能在Java中为Android实现模型-视图-控制器模式吗?
或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?
当前回答
MVC- Android上的架构 在android中最好遵循任何MVP而不是MVC。但仍然根据问题的答案这是可以解的
描述及指引
Controller -
Activity can play the role.
Use an application class to write the
global methods and define, and avoid
static variables in the controller label
Model -
Entity like - user, Product, and Customer class.
View -
XML layout files.
ViewModel -
Class with like CartItem and owner
models with multiple class properties
Service -
DataService- All the tables which have logic
to get the data to bind the models - UserTable,
CustomerTable
NetworkService - Service logic binds the
logic with network call - Login Service
Helpers -
StringHelper, ValidationHelper static
methods for helping format and validation code.
SharedView - fragmets or shared views from the code
can be separated here
AppConstant -
Use the Values folder XML files
for constant app level
注1:
这是你可以施展的魔法。在对代码段进行分类之后,编写一个基本接口类,比如IEntity和IService。声明通用方法。现在创建抽象类BaseService,声明您自己的方法集,并分离代码。
注2:如果您的活动呈现多个模型,那么与其在活动中编写代码/逻辑,不如将视图划分为片段。那就好多了。因此,如果将来需要在视图中显示更多的模型,请再添加一个片段。
注3:代码分离是非常重要的。体系结构中的每个组件都应该是独立的,而不是相互依赖的逻辑。如果碰巧你有一些相关的逻辑,那么在两者之间写一个映射逻辑类。这对你将来会有帮助。
其他回答
Android上的动作、视图和活动是与Android UI一起工作的内置方式,是模型-视图-视图模型(MVVM)模式的实现,它在结构上与模型-视图-控制器相似(在同一家族中)。
据我所知,没有办法打破这个模式。这可能是可以做到的,但是您可能会失去现有模型的所有好处,并且必须重写自己的UI层以使其正常工作。
在Android中,你没有MVC,但你有以下:
您可以根据分辨率、硬件等在各种XML文件中定义用户界面。 您可以根据语言环境等在各种XML文件中定义资源。 您可以扩展ListActivity、TabActivity等类,并通过扩展器使用XML文件。 您可以为业务逻辑创建任意数量的类。 很多Utils已经为您编写- DatabaseUtils, Html。
我看到很多人说MVC已经在Android中实现了,但这不是真的。Android默认不遵循MVC。
因为我不谷歌将永远强制MVC实现像iPhone的限制,但它取决于开发人员的模式或技术,他们想在他们的项目,在小或简单的应用程序使用MVC是不需要的,但随着应用程序的增长,变得复杂,并需要修改其代码在以后的几年,然后有一个MVC模式在Android的需求。
它提供了一种修改代码的简单方法,还有助于减少问题。 如果你想在Android上实现MVC,那么按照下面给出的链接,在你的项目中享受MVC实现。
http://www.therealjoshua.com/2011/11/android-architecture-part-1-intro/
但是现在,我认为MVP和Android架构模式是开发人员应该使用的干净和健壮的Android应用程序的最佳选择之一。
虽然这篇文章看起来很旧,但我想添加以下两篇文章来介绍Android在这一领域的最新发展:
android-binding -提供一个框架,使android视图小部件绑定到数据模型。它有助于在android应用程序中实现MVC或MVVM模式。
roboguice——roboguice去掉了开发过程中的猜测。注入您的视图,资源,系统服务,或任何其他对象,并让RoboGuice照顾的细节。
根据Xamarin团队的解释(在iOS MVC中“我知道这看起来很奇怪,但等一下”):
模型(数据或应用程序逻辑), 视图(用户界面)和 控制器(后面的代码)。
我可以这样说:
Android上的模型只是一个可打包对象。视图是XML布局,控制器是(活动+它的片段)。
*这只是我个人的观点,不是来自任何资源或书籍。