微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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开发.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐