外观设计模式

概念

外观模式的主要目的在于让外部减少与子系统内部多个模块的交互,从而让外部能够更简单地使用子系统,它负责把客户端的请求转发给子系统内部的各个模块 进行处理。

他只是实现功能的组合调用,只是各个模块的功能的一个组合而已,而不是像 装饰模式。

使用场景

1.当你要为一个复杂系统提供一个简单的接口时
2.客户程序与抽象类的实现部分之间存在着很大的依赖性
3.当你需要构建一个层次结构的子系统时。

其实就是拦截了一层,客户端掉用方 是不需要改的。

为了让整个系统只有一个外观类,用了单例

在android中的应用

contextImpl
AcitivityThread.java 的 main()

开启一个 looper,
然后就找handlerMessage
找到 handlerLaunchActivity()

然后performLaunchActivity()
里面的
activity.attch( appContext ,等等)

所以Acivity 的父类也是context ,并不实现具体的功能,他只是继承context 接口,他具体的操作会交给 contextImpl 这个类去做,因为他用到的是 contextImpl 的外观设计模式。

然后看act 中的attah()
里面的 attachBaseContext
再往下看的到, 这个context 被传给了 Context mBase;

所以 activity 的内部就持有了 context的引用。
所以 activity 充当的 是代理类,他代理了 contextImpl 去做的事情。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容