<a href="http://www.cnblogs.com/wolf-sun/p/3468100.html">[head first设计模式]山西面馆中的设计模式——装饰者模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3473744.html">[head first设计模式]山西面馆中的设计模式——观察者模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3475061.html">[head first设计模式]山西面馆中的设计模式——建造者模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3485805.html">[head first设计模式]饺子馆(冬至)中的设计模式——工厂模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3489549.html">[head first设计模式]一个人的平安夜——单例模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3514935.html">[head first设计模式]抢票中的设计模式——代理模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3518013.html">[head first设计模式]面向对象的3特征5原则</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3534573.html">[head first设计模式]鸭子模型——策略模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3543398.html">[head first设计模式]云南米线馆中的设计模式——模版方法模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3618911.html">[head first设计模式]餐馆中的设计模式——命令模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3629041.html">[head first设计模式]身边的设计模式——适配器模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3633600.html">[head first设计模式]生活中学设计模式——迭代器模式</a>
<a href="http://www.cnblogs.com/wolf-sun/p/3636768.html">[head first设计模式]生活中学设计模式——组合模式</a>
一些软件安装之后,默认的是开机启动,假如一个用户对电脑不太懂,安装一些软件,就会采用软件默认安装的方式,而这些软件默认的是开机启动的,比如:暴风影音,酷狗,qq,杀毒软件,延迟加载的服务等。这些子系统,都在你按下开机键之后,用户不用再去双击这些快捷方式,所有的操作都交给windows系统来做。 如果使用外观模式,如何来实现呢?
外观模式,提供一个统一的接口去访问多个子系统的多个不同的接口。
外观模式,定义了一个高层次的接口,使得子系统更容易被使用。

参与者
外观类(facade)
知道哪些子系统负责处理哪些请求。
将客户的请求传递给相应的子系统对象处理。
子系统类(subsystem)
实现子系统的功能。
处理由外观传过来的任务。
子系统不用知道外观类。
在任何地方也没有应用外观类。
结果:
优点
提供了一个简单且公用的接口去处理复杂的子系统,并且没有子系统的功能。
遮蔽了子系统的复杂性,避免了客户与子系统直接连接,也减少了子系统与子系统间的连接,每个子系统都有它的facade模式,子系统facade模式去访问其他子系统。
缺点
限制了客户的自由,减少了可变性。
适用性
需要复杂的子系统提供一个简单的接口。
客户与抽象的实现类中存在若干依赖。
子系统分层是必要的或架构要求的情况下。
博客地址:
<a href="http://www.cnblogs.com/wolf-sun">http://www.cnblogs.com/wolf-sun/</a>
博客版权:
本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。
转载:http://www.cnblogs.com/wolf-sun/p/3647078.html