Android设计模式-22-外观模式

1. 定义

  • 隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口

  • 通过创建一个统一的类,用来包装子系统中一个或多个复杂的类
    (由外观类去保存各个子系统的引用,实现由一个统一的外观类去包装多个子系统类,然而客户端只需要引用这个外观类,然后由外观类来调用各个子系统中的方法)客户端打

2. 使用场景

1. 为复杂的模块或子系统提供外界访问的接口

2. 子系统相对独立

3. 预防低水平人员带来的风险

3. 优缺点

  • 优点:

1. 降低了客户类与子系统类的耦合系统类都市小说度,实现松耦合关系

2. 对客户屏蔽了子系统组件,从而简化了接口,减少了客户处其他垃圾理的对象数目并使子系统的使用更加简单。

3. 降低原有系统的复杂度和系统中的编译依设计模式一般用来解决什么问题赖性,并简化了系统在不同平台之间的移植过程

  • 缺点:

1. 在不引入抽象外观类的情况下,增加新的子系统可能需要修改外观类客户端打开或客户端的源代码,违背了“开闭原则”

2. 不能很好地限制客户使用子系统类,如果对客户访问子系统类做太多的限制则减少了可变性和灵活性。

4. Android源码中的使用:

Conte其他综合收益xt封装其他应付款了很多操作,如star设计模式的6大原则tAc耦合度是什么意思tivity(),sendBroadcast(),bindServiced()等,相当于抽象外其他业务收入观类,Context的子系统中去实现这些方法,如ActivityManagerService实现startActi客户端和服务端区别vity(),PackageManagerService实现包信息相关方法,ContextImpl则是Context的实现类,也就是外观类,其内部调用这些子系统的实现,而Activity相当于客户端,其上两其他垃圾层父类Co设计模式面试题ntextWrapper中有个一个Context类型的mBase字段,其实际类型是ContextImpl,是对外观类的调用,例如ContextWrapper中:

5. 实例演示

以智能家居,统一管理家电为例

1. 各种家电作为子系统,如灯,电视,空调耦合度


                                            Android设计模式-22-外观模式

2.客户端英文 智能遥控器作为外观类(现在很多有红外功能的Andorid手机都有智能遥控器app, 比如我常用的遥控精灵就挺好用,不用再去抱着一大堆的各种遥系统类小说完结小说控器)


                                            Android设计模式-22-外观模式

3. 通过外观类去操作各子系统

我是今阳,如果想要进阶和其他应收款是什么科目了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章