有可能在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最好的资源是这篇文章:
我在自己的一个项目中采用了同样的设计,效果非常好。我是Android的初学者,所以我不能说这是最好的解决方案。
我做了一个修改:我实例化了应用程序类中每个活动的模型和控制器,这样当横向-纵向模式更改时就不会重新创建这些模型和控制器。
虽然这篇文章看起来很旧,但我想添加以下两篇文章来介绍Android在这一领域的最新发展:
android-binding -提供一个框架,使android视图小部件绑定到数据模型。它有助于在android应用程序中实现MVC或MVVM模式。
roboguice——roboguice去掉了开发过程中的猜测。注入您的视图,资源,系统服务,或任何其他对象,并让RoboGuice照顾的细节。
没有实现的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
使用布局、资源、活动和意图创建Android UI是MVC模式的实现。请参阅以下链接了解更多信息- http://www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf
PDF镜像
令人惊讶的是,这里没有一个帖子回答这个问题。它们要么太笼统,模糊,不正确,要么没有解决在android中的实现。
在MVC中,View层只知道如何显示用户界面(UI)。如果需要任何数据,则从Model层获取。但是视图并不直接要求模型去查找数据,它是通过控制器来做的。因此控制器调用模型为视图提供所需的数据。一旦数据准备好了,控制器就通知视图,可以从模型中获取数据了。现在视图可以从模型中获取数据。
这个流程可以总结如下:
值得注意的是,视图可以通过控制器(也称为被动MVC)了解模型中数据的可用性,或者通过向模型注册可观察对象来观察模型中的数据,这就是活动MVC。
在实现部分,首先想到的是视图应该使用什么android组件?活动还是片段?
答案是没有关系,两者都可以使用。View应该能够在设备上呈现用户界面(UI),并响应用户与UI的交互。Activity和Fragment都为此提供了所需的方法。
在本文使用的示例应用程序中,我使用了Activity作为视图层,但也可以使用Fragment。
完整的示例应用程序可以在我的GitHub repo的“mvc”分支中找到。
我还通过一个例子说明了在android中使用MVC架构的利弊。
对于那些感兴趣的人,我已经开始了一系列关于android应用程序架构的文章,在这里我比较了不同的架构,即MVC, MVP, MVVM,通过一个完整的工作应用程序开发android应用程序。