<设计模式10>外观模式
来源:互联网 发布:阿里云 centos7 lnmp 编辑:程序博客网 时间:2024/05/16 10:41
没有看到外观模式的具体实现可能大家对外观模式没有了解。但是事实上,外观模式在我们平常项目中都用的很多,只是我们并不知道它其实是属于外观模式中的一种。
应用场景:
有时候我们需要实现几个不同的功能,这几个功能又事相互独立开的。此时我们想要去对他们进行操作每次都需要操作其本身对象,这样很麻烦。就好比,我们在看电视的时候需要开关按钮、调节频道的按钮、音量按钮。此时,如果我们没有遥控器,我们每次去操作一个功能就需要一个不同的设备,这会显得麻烦。而有了遥控器,我们可以通过一个遥控器来实现这些功能。这样就方便了很多。而这个遥控器就是外观类,它简化了类与类之间的交互,对类之间有解耦合的作用。
示例:
开关:
public class Power {public void setPower(){System.out.println("控制电源");}}
音量:
public class Volume { public void setVolume(){ System.out.println("设置音量"); }}
调节频道:
public class Channel { public void setChannel(){ System.out.println("设置频道"); }}
外观类(遥控器):
public class FacadeController {Channel channel;Power power;Volume volume;public FacadeController() {channel = new Channel();power = new Power();volume = new Volume();}public void setChannel(){channel.setChannel();}public void setPower(){power.setPower();}public void setVolume(){volume.setVolume();}}
使用测试:
public class FacadeTest { public static void main(String[] args) { //没有外观模式 Power power = new Power(); Channel ch = new Channel(); Volume volume = new Volume(); power.setPower(); ch.setChannel(); volume.setVolume(); //有了外观模式 FacadeController controller = new FacadeController(); controller.setPower(); controller.setChannel(); controller.setVolume(); }}
结果:
控制电源
设置频道
设置音量
控制电源
设置频道
设置音量
从最后的使用方面来说,差别很明显,没有外观类和有了外观类结果是相同的,但是没有外观类的时候,我们的操作明显更加复杂,而且当功能扩展的时候,问题就更加的多。而外观类给我们解决了这个问题,减少了我们对不同类的直接操作。
0 0
- <设计模式10>外观模式
- 设计模式--外观模式
- 设计模式-外观模式
- 设计模式:外观模式
- 设计模式----外观模式
- 设计模式------外观模式
- 设计模式 外观模式
- 设计模式-【外观模式】
- 设计模式-----外观模式
- 设计模式 - 外观模式
- 设计模式 - 外观模式
- 设计模式- 外观模式
- 设计模式-外观模式
- 设计模式 - 外观模式
- 设计模式-外观模式
- 设计模式 - 外观模式
- 设计模式-外观模式
- 设计模式--外观模式
- 简历笔记
- ImageLoader
- 最优对称路径
- Pro Android学习笔记(一五十):拖拽(4):Android3.0及后的方式(下)
- atom 编辑器使用 gbk 编码的诸多问题
- <设计模式10>外观模式
- Java容器
- OC-委托模式
- Java基础之(三十三)Map
- Android: EditText监听内容变化
- 主板各芯片简介
- 错误记录七
- HDU 1176(数塔)
- TestNG套件测试