我刚刚阅读了MVC设计模式的描述,并提出了一些问题:我是Android开发人员(青少年),并且希望让我的代码更清晰。那么,我应该使用MVC吗?每个活动都必须有自己的模式?有没有什么好的教程?谢谢。每个活动都必须有自己的模型吗?
回答
它已经实施。 MVC pattern on Android
你不需要做任何事情,因为Android是预置的MVC
MVC是种想法的不止做的事情(如活动和模型之间的1对1的关系)的特定方式。这个想法是分开模型,视图和控制器,这样的东西有意义。
在Android中,多个活动可以引用单个模型(例如,您可以搜索房屋列表的活动,“编辑房屋”活动以及将它们显示为其中的点的地图坐标)。所以,要回答你的第二个问题:不,他们不需要有自己的模型。
是的,你应该使用MVC,如果它是有道理的。只要将您的模型视为与实际应用程序分开的实体,并将您的模型作为模型的“用户”来使用即可。
在Android上,我发现MVP(Model,View,Presenter)模式与整个系统架构更直接相关。你的活动包括视图,这在MVP设置中负责管理他们自己的事件并控制他们自己的外表。主持人作为模型和视图之间的协调者,在视图请求时提供数据。根据您的需要,演示者可能会或可能不会提供服务。至于视图/模型比率,这取决于您在任何一点上试图在屏幕上显示的内容。当Android仅在手机上运行时,在活动和模型之间具有非常多的一对一关联是有意义的。现在,正常情况是在你的模型和你的片段之间有一对一的关系,然后你的活动通过展示适当的片段来聚集。
如果你想做MVC,虽然现在碎片是工具箱中的一个工具,但它比以前更容易,尤其是在开发完成的事件系统(比如RoboGuice中包含的系统)时 - 想想作为视图的片段,以及作为控制器的活动 - 订购视图,从模型中提供数据,并处理到其他控制器的转换。
模式的选择取决于您的需求 - 如果应用程序要受到服务驱动,MVP可能是更好的选择。但是,如果应用程序仅仅是数据库上的瘦客户端,那么MVC可能会更容易。这一切都取决于你:)
“开始使用”资源为MVP:http://www.jamespeckham.com/blog/10-11-21/MVP_on_Android.aspx
- 1. 每个类都必须拥有自己的OnClickListener吗?
- 2. 每个活动都必须有布局吗?
- 3. 每个派生表都必须有它自己的别名Error?
- 4. 每个派生表都必须有自己的别名
- 5. 每个派生表都必须有自己的别名?
- 6. #1248.每个派生表都必须具有自己的别名
- 7. MySQL:每个派生表都必须有自己的别名
- 8. 每个.xib文件都必须有自己的.h和.m文件吗?
- 9. Zend中的每个表都必须映射到它自己的类吗?
- 10. 每个人都必须同意SO_REUSEADDR吗?
- 11. Android,viewpager,每个布局都有自己的活动
- 12. MySql +实体框架=每个派生表都必须具有自己的别名
- 13. 错误1248(42000):每个派生表都必须有自己的别名
- 14. mySQL错误:#1248 - 每个派生表都必须有自己的别名
- 15. 获取错误:每个派生表都必须具有自己的别名
- 16. MySQL JOIN错误:每个派生表都必须有自己的别名
- 17. SQL错误:每个派生表都必须有自己的别名
- 18. SQL Server CE中的每个表都必须有主键吗?
- 19. 每个派生的表必须有它自己的别名
- 20. 每个派生的表必须有它自己的别名#1248
- 21. 每个派生的表必须有它自己的别名(
- 22. #1248 - 每一个派生表必须有它自己的别名
- 23. 每个派生表必须有它自己的重复
- 24. 开关说明:每个情况下都必须有断线吗?
- 25. 每个git commit都必须没有错误和完美吗?
- 26. Dynamics CRM 2011 - 每个与不同实体相关的插件都必须拥有自己的程序集吗?
- 27. 有了MVVM,每个UI窗口都有自己的ViewModel吗?
- 28. 两个片段之间的通信,每个片段都有自己的活动
- 29. 防止每次打开活动时都必须加载TextViews?
- 30. 实施战略模式。我每次都必须“新”吗?
相反MVC的,Android应用程序应该实现MVP或松耦合。 你可以在android应用程序中找到mvp的例子和使用优势@http://kjthumar.blogspot.com/ – 2017-03-18 04:55:20