有可能在Java中为Android实现模型-视图-控制器模式吗?
或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?
有可能在Java中为Android实现模型-视图-控制器模式吗?
或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?
当前回答
没有普遍唯一的MVC模式。MVC是一个概念,而不是一个可靠的编程框架。你可以在任何平台上实现你自己的MVC。只要你坚持以下基本思想,你就是在实现MVC:
模型:渲染什么 视图:如何渲染 控制器:事件,用户输入
也可以这样考虑:当您为模型编程时,模型不应该担心呈现(或特定于平台的代码)。模型会对视图说,我不在乎你的渲染是Android, iOS还是Windows Phone,这是我需要你渲染的。 视图将只处理特定于平台的呈现代码。
当您使用Mono共享模型以开发跨平台应用程序时,这一点特别有用。
其他回答
模型视图控制器(MVC)
描述:
当我们要在软件开发中主要进行大型项目时,采用MVC模式 通常使用,因为它是一种通用的组织方式 项目。 新的开发人员可以很快适应项目 帮助开发大型项目和跨平台。
MVC模式本质上是这样的:
模型:显示什么。这可以是数据源(例如:服务器,原始 应用程序中的数据) 视图:显示的方式。这可以是xml。因此,它是作为一个 表示过滤器。视图附加到它的模型(或模型部分) 并获取演示所需的数据。 控制器:处理类似用户输入的事件。这就是活动
MVC的重要特性:我们可以修改模型或视图或控制器,但不影响其他的
比如我们改变视图的颜色,视图的大小或位置 风景。这样做不会影响模型或控制器 假设我们更改模型(而不是从服务器获取的数据) 从资产中获取数据)仍然不会影响视图和 控制器 假设我们改变了控制器(活动中的逻辑),它不会影响 模型和视图
Android上的动作、视图和活动是与Android UI一起工作的内置方式,是模型-视图-视图模型(MVVM)模式的实现,它在结构上与模型-视图-控制器相似(在同一家族中)。
据我所知,没有办法打破这个模式。这可能是可以做到的,但是您可能会失去现有模型的所有好处,并且必须重写自己的UI层以使其正常工作。
根据Xamarin团队的解释(在iOS MVC中“我知道这看起来很奇怪,但等一下”):
模型(数据或应用程序逻辑), 视图(用户界面)和 控制器(后面的代码)。
我可以这样说:
Android上的模型只是一个可打包对象。视图是XML布局,控制器是(活动+它的片段)。
*这只是我个人的观点,不是来自任何资源或书籍。
没有一个单一的MVC模式可以遵循。MVC只是或多或少地说明了你不应该将数据和视图混为一谈,例如,视图负责保存数据,或者处理数据的类直接影响视图。
但无论如何,Android处理类和资源的方式,有时你甚至被迫遵循MVC模式。在我看来,更复杂的是那些有时负责视图,但同时又充当控制器的活动。
如果您在XML文件中定义视图和布局,从res文件夹加载资源,并且如果您或多或少地避免在代码中混合这些东西,那么您无论如何都是在遵循MVC模式。
我看到很多人说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应用程序的最佳选择之一。