大话设计模式读书笔记--8.外观模式

外观模式的用意是为子系统提供一个集中化和简化的沟通渠道,而不是向子系统加入新的行为

生活中的例子:

一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设计

定义

定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这一接口使得这一子系统更加容易使用

结构图

Facade: 是模式的核心,指导所有子系统的功能, 可根据客户端的需求定制功能组合

SubSystemOne: 实现子系统的功能

代码实现

场景: 新手理财买基金,  通过基金经理人进行投资,而新手无须关心基金经理人具体的投资

场景分析: 新手只要关系基金的涨跌, 而无须关心基金经理人具体的投资行为

点击下载代码

优缺点及使用场景

优点:

 1.减少客户端处理的对象数目
 2.对客户端屏蔽了子系统, 实现了解耦合

缺点: 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。

使用场景:

1.在设计初期,应该有意识的将不同的两个层分离,比如经典的mvc架构
2.子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类,使用起来困难, 增加外观模式可以提供简单的接口,减少依赖
3.一个大型系统非常难以维护和扩展,但是新的需求必须依赖其中部分功能,可以提供一个外观Facade类,让新系统与Facade对象交互

在对系统使用外观模式后,达到的效果如下图

 

posted @ 2017-02-19 22:29  liuconglin  阅读(511)  评论(0编辑  收藏  举报