“headfirst设计模式“:外观模式

author author     2022-11-06     292

关键词:

外观模式


外观模式定义: 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。类图如下:
技术分享图片


要点
● 外观模式为复杂子系统提供了一个简单接口,并不为子系统添加新的功能和行为。
● 外观模式实现了子系统与客户之间的松耦合关系。
● 外观模式没有封装子系统的类,只是提供了简单的接口。 如果应用需要,它并不限制客户使用子系统类。因此可以再系统易用性与通用性之间选择。
● 外观模式注重的是简化接口,它更多的时候是从架构的层次去看整个系统,而并非单个类的层次。


外观模式优点
● 实现了子系统与客户端之间的松耦合关系。
● 客户端屏蔽了子系统组件,减少了客户端所需处理的对象数目,并使得子系统使用起来更加容易。


使用场景
● 设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。
● 开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
● 维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。


案例1:假设我们家里做一个影院,大屏电视,dvd,音响,爆米花机,有好多设备,我们看电视一般的流程是:
● 先打开电源。
● 然后打开电视。
● 然后打开dvd。
● 然后打开音响。
● 然后打开爆米花机。
● 然后,,,然后关闭呢?,,,,好多事我们自己处理,这时我们可以引入外观模式来简化,记住哦,外观模式就是简化接口,简化子系统调用。改造以后我们可以按遥控器的一键来处理这些所有的步骤,类图如下:
技术分享图片


设计原则:最少知识原则,只和朋友交谈。

外观模式——headfirst设计模式学习笔记

外观模式:提供了一个统一的接口用来访问子系统的一群接口。外观定义了一个高层接口,让子系统更容易使用  特点:将一个或多个类的复杂的一切隐藏在背后,只露出一个干净美好的外观通过提供一个有着更合理接口... 查看详情

headfirst设计模式之适配器模式与外观模式

HeadFirst设计模式之适配器模式与外观模式前言:之前讲过装饰者模式,将对象包装起来并赋予新的职责,这一章我们也会将对象进行包装,只不过是让它们看起来不像自己而像是别的东西。这样就可以在设计中将类的接口转化为... 查看详情

《headfirst设计模式》之适配器模式与外观模式

适配器模式(Adapter)适配器(adapter-pattern):将一个类的接口,转换成客户期望的另一个接口。适配器让原来接口不兼容的类可以合作无间。两种形式:对象适配器(组合)类适配器(多重继承):在Java中不能实现外观(facade-patter... 查看详情

headfirst设计模式之适配器模式与外观模式(代码片段)

HeadFirst设计模式之适配器模式与外观模式前言:之前讲过装饰者模式,将对象包装起来并赋予新的职责,这一章我们也会将对象进行包装,只不过是让它们看起来不像自己而像是别的东西。这样就可以在设计中将... 查看详情

设计模式外观模式一键电影模式(代码片段)

注:文章参考《headfirst设计模式》一书,非常值得学习的一本书。转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/25837275这个模式比较简单,嘿嘿,简单写一下。老样子,先看 外观模式(FacadeP... 查看详情

headfirst设计模式——开篇

...期在看HeadFirst,接下来的一段时间会陆续更新有关HeadFirst设计模式相关的文章。记得非常久之前在学习大话设计模式的时候,仅仅是走马观花的大致走过一遍。至于里面非常多东西都掌握的不是非常好。恰巧又接触了HeadFirst,想... 查看详情

headfirst设计模式分析学习(代码片段)

...弃的毅力,和对欲望的控制。注意:要能够理解相类似的设计模式之间的区别和不同。可以把类比列举出来,加深记忆。是否加入Spring容器中的标准是是否要用到Spring框架的方法或者功能特性,如事务,SpringMvc,与ibatis整合等相... 查看详情

《headfirst设计模式》pdf下载

《HeadFirst设计模式》【PDF】下载链接:https://u253469.ctfile.com/fs/253469-231196307    First设计模式》【PDF】" TITLE="《HeadFirst设计模式》【PDF】"/>   内容简介   《HeadFirst 查看详情

headfirst设计模式之门面模式

一、实现家庭影院1.1packageheadfirst.designpatterns.facade.hometheater;23publicclassHomeTheaterFacade{4Amplifieramp;5Tunertuner;6DvdPlayerdvd;7CdPlayercd;8Projectorprojector;9TheaterLightslights;10Screenscreen 查看详情

headfirst设计模式pdf

...容简介  · · · · · ·《HeadFirst设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Str... 查看详情

headfirst设计模式--10状态模式

...你9、类应该只有一个修改的理由 例子来自《HeadFirst设计模式》,糖果机的例子interfaceState{publicvoidin 查看详情

delphi设计模式:《headfirst设计模式》delphi7代码---工厂模式之简单工厂

简单工厂:工厂依据传进的参数创建相应的产品。http://www.cnblogs.com/DelphiDesignPatterns/archive/2009/07/24/1530536.html{《HeadFirst设计模式》工厂模式之简单工厂}3{产品类}4{编译工具:Delphi7.0}5{联系方式:[email protected]com}67unituProducts;89int 查看详情

观察者模式------《headfirst设计模式》

第二章---观察者模式xzmxddx  学习方式:书籍《HeadFirst设计模式》,这本书通俗易懂,所有知识点全部取自本书。面向对象设计原则封装变化多用组合,少用继承针对接口编程,不针对实现编程为交互对象之间的松耦合设计而... 查看详情

headfirst设计模式之单件模式(singletonpattern)(代码片段)

 1.   单件模式的经典实现publicclassSingletonprivatestaticSingletonuniqueInstance;privateSingleton()publicstaticSingletonGetInstance()if(uniqueInstance==null)uniqueInstance=newSingleton();returnuniq 查看详情

headfirst设计模式1设计模式入门

...有的部分封装起来。一定程度上说,这些概念都是简单的设计模式。设计原则1:找出应用中可能需要变化的部分,把他们独立出来,不要和那些不需要变化的部分融合在一起。 设计原则2:针对接口编程,而不是针对实现编程。... 查看详情

“headfirst设计模式“:装饰模式

装饰模式    装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。    装修模式的角色如下:抽象构件角色(Component):给出一个抽象接口,以规范准... 查看详情

headfirst设计模式装饰者模式

...的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。... 查看详情

headfirst设计模式——与设计模式相处

...工作快2年了,我还是个常常迷茫找不到方向的人。  设计模式,模式是在某情境下针对某问题的解决方案。这句话让我想起了我们的一个大领导,每次吃饭都会和我们吹“模型”、套路,说人做的所有事里面都有套模型... 查看详情