设计模式-外观模式
2014-04-16 15:54
120 查看
最近在很多场合都看见设计模式的影子,一直以来,都投入主要时间在搞算法与数据结构,很来发现设计模式真的很重要。有的时候代码的可维护、可重用、可扩展确实胜过单纯的算法效率高。所以拾起大牛书籍《大话设计模式》同时参考网上诸大牛的博客,开始我的设计模式之旅。
今天先介绍一下外观模式。
概念:
外观模式(Facade):为多个子系统的一组接口提供一个统一的界面,此模式定义了一个的高级接口,从而简化用户对子系统的使用操作。
具体组成:
(1)、子系统类:实现不同子系统的底层功能。
(2)、外观类:组合封装用户经常使用的不同子系统的方法,形成高层接口。需要声明子系统的引用。
优点:
子系统往往因为不断重构而变得复杂,可以尝试给他们增加统一接口外观类,来简化对其的组合操作。
贴段代码:
今天先介绍一下外观模式。
概念:
外观模式(Facade):为多个子系统的一组接口提供一个统一的界面,此模式定义了一个的高级接口,从而简化用户对子系统的使用操作。
具体组成:
(1)、子系统类:实现不同子系统的底层功能。
(2)、外观类:组合封装用户经常使用的不同子系统的方法,形成高层接口。需要声明子系统的引用。
优点:
子系统往往因为不断重构而变得复杂,可以尝试给他们增加统一接口外观类,来简化对其的组合操作。
贴段代码:
package Pattern; /* * 子系统类1 */ class SubSystemOne { public void ShowSubSystemOne() { System.out.println("子系统一启动!"); } } /* * 子系统类2 */ class SubSystemTwo { public void DoSubSystemTwo() { System.out.println("子系统在运行!"); } } /* * 子系统类3 */ class SubSystemThree { public void SleepSubSystemThree() { System.out.println("子系统在休眠!"); } } /* * 外观类 */ class Facade { SubSystemOne mySubSystemOne; SubSystemTwo mySubSystemTwo; SubSystemThree mySubSystemThree; public Facade() { mySubSystemOne = new SubSystemOne(); mySubSystemTwo = new SubSystemTwo(); mySubSystemThree = new SubSystemThree(); } public void MethodA() { mySubSystemOne.ShowSubSystemOne(); mySubSystemTwo.DoSubSystemTwo(); } public void MethodB() { mySubSystemOne.ShowSubSystemOne(); mySubSystemThree.SleepSubSystemThree(); } } public class Pattern { public static void main(String[] args) { try { Facade myFacade = new Facade(); myFacade.MethodA(); myFacade.MethodB(); } catch (Exception e) { System.out.println("Java异常发生!"); } } }
相关文章推荐
- 设计模式(九)外观模式Facade(结构型)
- python设计模式-外观模式
- 外观设计模式
- 设计模式之(十)--外观模式(facade)
- 设计模式入门学习 Facade外观模式
- JS设计模式之外观模式
- Objective C设计模式之外观模式facade
- 设计模式——外观模式
- 设计模式之外观模式实例
- 结构型设计模式-外观模式
- 设计模式笔记10:外观模式(Facade Pattern)
- 设计模式--外观模式
- 外观设计模式
- iOS设计模式浅析之外观模式
- 设计模式之门面(外观)模式(Facade)
- 设计模式——外观模式
- 我所理解的设计模式(C++实现)——外观模式(Facade Pattern)
- Java设计模式——外观模式(门面模式)(Facade)
- Dot Net设计模式—适配器、桥接与外观三模式之间的关系