有可能在Java中为Android实现模型-视图-控制器模式吗?

或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?


当前回答

没有普遍唯一的MVC模式。MVC是一个概念,而不是一个可靠的编程框架。你可以在任何平台上实现你自己的MVC。只要你坚持以下基本思想,你就是在实现MVC:

模型:渲染什么 视图:如何渲染 控制器:事件,用户输入

也可以这样考虑:当您为模型编程时,模型不应该担心呈现(或特定于平台的代码)。模型会对视图说,我不在乎你的渲染是Android, iOS还是Windows Phone,这是我需要你渲染的。 视图将只处理特定于平台的呈现代码。

当您使用Mono共享模型以开发跨平台应用程序时,这一点特别有用。

其他回答

我看到很多人说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中,你没有MVC,但你有以下:

您可以根据分辨率、硬件等在各种XML文件中定义用户界面。 您可以根据语言环境等在各种XML文件中定义资源。 您可以扩展ListActivity、TabActivity等类,并通过扩展器使用XML文件。 您可以为业务逻辑创建任意数量的类。 很多Utils已经为您编写- DatabaseUtils, Html。

使用布局、资源、活动和意图创建Android UI是MVC模式的实现。请参阅以下链接了解更多信息- http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf

PDF镜像

你可以在Android中实现MVC,但它不是“原生支持”的,需要一些努力。

也就是说,我个人倾向于认为MVP对于Android开发来说是一种更简洁的架构模式。说到MVP,我的意思是:

我也在这里发布了一个更详细的答案。

在尝试了Android中MVC/MVP实现的各种方法后,我想出了一个合理的架构模式,我在这篇文章中描述了它:Android中的MVP和MVC架构模式。

Android上的动作、视图和活动是与Android UI一起工作的内置方式,是模型-视图-视图模型(MVVM)模式的实现,它在结构上与模型-视图-控制器相似(在同一家族中)。

据我所知,没有办法打破这个模式。这可能是可以做到的,但是您可能会失去现有模型的所有好处,并且必须重写自己的UI层以使其正常工作。