2018年11月更新
在Android上有关MVC和MVP的博客上工作了几年之后(请参阅下面的答案正文),我决定以一种更全面,更易于理解的形式来获取我的知识和理解。
因此,我发布了有关Android应用程序体系结构的完整视频课程。因此,如果您有兴趣掌握Android开发中最先进的架构模式,请在此处查看此综合课程。
此答案已更新,以便在2016年11月之前仍然有效
看来您是在寻找建筑模式而不是设计模式。
设计模式旨在描述程序员为处理特定的一组重复发生的软件任务而可能实施的一般“技巧”。例如:在OOP中,当需要一个对象将某些事件通知一组其他对象时,可以采用观察者设计模式。
由于Android应用程序(以及大多数AOSP)都是用Java编写的,Java是面向对象的,因此我想寻找一个单一的OOP设计模式会很困难,而这种模式在Android上是不使用的。
另一方面,体系结构模式不解决特定的软件任务-它们旨在根据相关软件组件的用例为软件组织提供模板。
听起来有些复杂,但是我希望可以通过一个示例来阐明:如果使用某些应用程序从远程服务器获取数据并以结构化的方式将其呈现给用户,则MVC可能是一个不错的考虑对象。请注意,我没有对应用程序的软件任务和程序流程进行任何说明-我只是从用户的角度对其进行描述,然后出现了一种架构模式的候选人。
由于您在问题中提到MVC,所以我猜想您正在寻找架构模式。
历史上,谷歌没有关于应用程序架构的官方指南,(除其他原因外)导致Android应用程序的源代码一团糟。实际上,即使到今天,我看到的大多数应用程序仍未遵循OOP最佳实践,也没有显示清晰的逻辑组织代码。
但是今天情况有所不同-Google最近发布了数据绑定库,该库与Android Studio完全集成,甚至为Android应用程序推出了一套体系结构蓝图。
两年前,很难在Android上找到有关MVC或MVP的信息。如今,MVC,MVP和MVVM在Android社区中已成为“流行语”,无数的专家包围着我们,他们不断地试图说服我们MVx比MVy更好。我认为,讨论MVx是否比MVy更好是完全没有意义的,因为术语本身非常模棱两可-只要看一下这个问题的答案,您就会意识到,不同的人可以将这些缩写与完全不同的结构联系起来。
由于已经正式开始寻找适用于Android的最佳架构模式的事实,我认为我们将看到更多的想法。在这一点上,要预测哪种模式(或多种模式)将来成为行业标准确实是不可能的-我们将需要拭目以待(我猜大概需要一两年的时间)。
但是,我可以高度自信地做出一个预测:数据绑定库的使用不会成为行业标准。我有把握地说,因为数据绑定库(在其当前实现中)可带来短期的生产率提高和某种体系结构指导,但从长远来看,它将使代码不可维护。一旦该库的长期影响浮出水面,它将被废弃。
现在,尽管我们今天确实有某种官方指导方针和工具,但我个人并不认为这些指导方针和工具是可用的最佳选择(而且绝对不是唯一的选择)。在我的应用程序中,我使用自己的MVC架构实现。它简单,干净,可读和可测试,并且不需要任何其他库。
这个MVC不仅在外观上与其他MVC不同,它还基于一个理论,即Android中的Activity不是UI Elements,这对代码组织有着巨大的影响。
因此,如果您正在寻找一种遵循SOLID原则的适用于Android应用程序的良好架构模式,那么您可以在我的帖子中找到有关Android中MVC和MVP架构模式的描述。