23

我知道一些在android中使用的设计模式,比如......

  1. 广播接收器使用观察者设计模式
  2. Intent 使用一种工厂设计模式
  3. 视图使用复合设计模式
  4. 媒体框架使用外观设计模式

除了这些,还有其他在android中使用的设计模式吗?欣赏你的想法

4

1 回答 1

8

Android 在其结构中使用了很多模式。

您可以看到的第一个模式是层模式,它在 POSA 1(面向模式的软件架构 1)一书中被归类为架构模式。Layers 模式的主要结构特征是 Layer J 的服务仅由 LayerJ+1 使用,层之间没有进一步的直接依赖关系。这种模式将解决低级和高级问题混合的问题,即高级操作依赖于低级操作。Android 是建立在一个多抽象层的堆栈之上(更多细节请参考http://elinux.org/Android_Architecture),所以部署这个设计是为了解决它的问题。

Android在多进程上做了很多事情,因此需要精心设计IPC(进程间通信)机制。在 Android 中,Binder 和使用 AIDL 进行无缝通信,尽管这些进程中的服务可以用 Java、C 或 C++ 编写。Binder 由 Proxy(在 Gang of Four 书中)、Broker(在 POSA 1 书中)和 Facade Wrapper 模式(参考此链接http://www.cs.wustl.edu/~schmidt/PDF/wrapper-facade. pdf ) 来实施。代理模式将对客户端隐藏通信细节,因此进程可以在本地上下文或网络上下文中统一与对象通信。Broker 用于隔离与通信相关的问题。Facade Wrapper 模式用于将 C 库 Android 中的低级函数和数据结构封装在高级接口中。

多线程机制也使用了很多模式。我们可以看到一个模式是用于执行长时间运行的调用的命令处理器模式。

观察者模式用于跟踪系统相关的状态。

……

我现在能记得的就这些了。如果您对 Android 设计模式感兴趣。您可以查看本课程:https : //class.coursera.org/posa-001/class/index on Coursera 了解更多详情。

于 2013-03-31T17:18:28.397 回答