Android上使用了哪些设计模式?

我正在对移动平台进行一项小型研究,我想知道Android中使用了哪些设计模式?

例如在iOS中,模型 – 视图 – 控制器与委托和其他模式一起使用非常广泛.

哪些模式以及Android使用的具体位置?

编辑

我不是要求内核,dalvik等深入使用的设计模式,而是要求应用程序开发人员在开发应用程序时遇到的模式.

解决方法:

我尝试使用model–view–controller(MVC)和model–view–presenter设计模式进行android开发.我的发现是模型 – 视图 – 控制器工作正常,但有一些“问题”.这一切都归结为你如何看待Android Activity类.它是一个控制器,还是一个视图?

实际的Activity类不会扩展Android的View类,但它会处理向用户显示窗口并处理该窗口的事件(onCreate,onPause等).

这意味着,当您使用MVC模式时,您的控制器实际上将是一个伪视图控制器.因为它正在处理向用户显示窗口,所以使用setContentView添加了其他视图组件,并且还至少处理各种活动生命周期事件的事件.

在MVC中,控制器应该是主要的入口点.如果在将其应用于Android开发时就是这种情况,这有点争议,因为活动是大多数应用程序的自然切入点.

因此,我个人发现模型 – 视图 – 演示者模式非常适合Android开发.由于视图在此模式中的作用是:

>作为切入点
>渲染组件
>将用户事件路由到演示者

这允许您像这样实现您的模型:

视图 – 它包含您的UI组件,并为它们处理事件.

演示者 – 这将处理模型和视图之间的通信,将其视为模型的网关.意思是,如果你有一个复杂的领域模型代表,上帝知道什么,你的视图只需要这个模型的一个非常小的子集,演示者的工作是查询模型,然后更新视图.例如,如果您的模型包含文本段落,标题和字数.但在给定视图中,您只需要在视图中显示标题.然后,演示者将从模型中读取所需的数据,并相应地更新视图.

模型 – 这基本上应该是您的完整域模型.希望它有助于使您的域模型更加“紧密”,因为您不需要特殊的方法来处理上面提到的案例.

通过将模型与视图一起解耦(通过使用演示者),测试模型也变得更加直观.您可以为您的域模型进行单元测试,并为演示者进行单元测试.

试试看.我个人认为它非常适合Android开发.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...