有可能在Java中为Android实现模型-视图-控制器模式吗?
或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?
有可能在Java中为Android实现模型-视图-控制器模式吗?
或者它已经通过活动实现了吗?或者有没有更好的方法来实现Android的MVC模式?
当前回答
使用布局、资源、活动和意图创建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架构模式。
我同意JDPeckham的观点,并且我相信XML本身不足以实现应用程序的UI部分。
然而,如果你认为Activity是视图的一部分,那么实现MVC是相当简单的。您可以重写Application(由Activity中的getApplication()返回),在这里您可以创建一个在应用程序的生命周期中存在的控制器。
(或者,您也可以使用应用程序文档中建议的单例模式)
没有实现的MVC体系结构,但是存在一组库/示例来实现MVP(模型-视图-呈现器)体系结构。
请查看这些链接:
https://github.com/sockeqwe/mosby https://github.com/android10/Android-CleanArchitecture https://github.com/antoniolg/androidmvp
谷歌增加了一个Android架构MVP的例子:
https://github.com/googlesamples/android-architecture
没有普遍唯一的MVC模式。MVC是一个概念,而不是一个可靠的编程框架。你可以在任何平台上实现你自己的MVC。只要你坚持以下基本思想,你就是在实现MVC:
模型:渲染什么 视图:如何渲染 控制器:事件,用户输入
也可以这样考虑:当您为模型编程时,模型不应该担心呈现(或特定于平台的代码)。模型会对视图说,我不在乎你的渲染是Android, iOS还是Windows Phone,这是我需要你渲染的。 视图将只处理特定于平台的呈现代码。
当您使用Mono共享模型以开发跨平台应用程序时,这一点特别有用。
我认为最有用的简单解释是: http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf
从我在这里看到和读到的所有东西来看,实现所有这些东西都变得更加困难,并且与android的其他部分不太适应。
让一个活动实现其他监听器已经是标准的Android方式。最无害的方法是像幻灯片所描述的那样添加Java观察者,并将onClick和其他类型的操作分组到仍然在Activity中的函数中。
Android的方式是Activity两者都做。与之斗争并不能真正使扩展或将来的编码变得更容易。
我同意第二篇文章。它已经实现了,只是不是人们习惯的方式。不管它是否在同一个文件中,已经有分离了。不需要创建额外的分隔来适应其他语言和操作系统。