我正在做一个关于移动平台的小研究,我想知道Android中使用了哪些设计模式?
e、 g.在iOS模型中,视图控制器与委托和其他模式一起被广泛使用.
Android使用的模式是什么,具体在哪里使用?
EDIT个
我不是在问内核、dalvik等深层次使用的设计模式,而是关于应用程序开发人员在开发应用程序时会遇到的模式.
我正在做一个关于移动平台的小研究,我想知道Android中使用了哪些设计模式?
e、 g.在iOS模型中,视图控制器与委托和其他模式一起被广泛使用.
Android使用的模式是什么,具体在哪里使用?
EDIT个
我不是在问内核、dalvik等深层次使用的设计模式,而是关于应用程序开发人员在开发应用程序时会遇到的模式.
我try 使用model–view–controller(MVC)和model–view–presenter架构模式进行android开发.我的发现是模型-视图-控制器工作正常,但有几个"问题".这一切都取决于你对安卓Activity
类的看法.它是控制器还是视图?
实际的Activity
类并没有扩展Android的View
类,但是它可以处理向用户显示窗口,以及处理该窗口的事件(onCreate、onPause等).
这意味着,当您使用MVC模式时,您的控制器实际上是一个伪视图-控制器.因为它正在处理向用户显示窗口,以及使用setContentView添加到其中的其他视图组件,并且还处理至少各种活动生命周期事件的事件.
在MVC中,控制器被认为是主要的入口点.如果将其应用于Android开发时,这一点有点值得商榷,因为活动是大多数应用程序的天然切入点.
因此,我个人发现model–view–presenter模式非常适合Android开发.由于视图在该模式中的作用是:
这使您可以像这样实现您的模型:
View-它包含您的UI组件,并为它们处理事件.
Presenter-这将处理模型和视图之间的通信,将其视为模型的网关.也就是说,如果你有一个复杂的领域模型,它代表的是什么,天知道,你的视图只需要这个模型的一个很小的子集,那么演示者的工作就是查询模型,然后更新视图.例如,如果你有一个模型包含一段文字、一个标题和一个字数.但是在给定的视图中,您只需要在视图中显示标题.然后演示者将从模型中读取所需的数据,并相应地更新视图.
Model-这基本上应该是你的完整域模型.希望它也能让你的领域模型更"紧凑",因为你不需要特殊的方法来处理上面提到的情况.
通过将模型与视图完全分离(通过使用演示器),测试模型也变得更加直观.您可以对域模型进行单元测试,对演示者进行单元测试.
试试看.我个人认为它非常适合Android开发.