前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式之外观模式(Facade Pattern)外观模式的优缺点

设计模式之外观模式(Facade Pattern)外观模式的优缺点

作者头像
desperate633
发布2018-08-22 15:45:55
1.4K0
发布2018-08-22 15:45:55
举报
文章被收录于专栏:desperate633desperate633

外观模式外部访问内部复杂代码的一个接口,举个例子,我们知道打开一台电脑很简单,只要按开机键,但实际上在后台我们看不到的地方,计算机进行了很多复杂的工作,比如,cpu。内存。硬盘等的启动。但我们不需要亲自去启动这些复杂的步骤,我们只需要知道按下开机键,电脑就会启动。 实际上这里就是使用了外观模式,外观模式提供了一个简单的接口,为我们封装好了访问内部代码的复杂操作,有了外观模式,我们只需要简单的按下开机键,就可以自动调用cpu。硬盘。内存的方法帮我们启动电脑。

Paste_Image.png

参看外观模式的类图,我们可以看到外观模式将多个复杂的操作封装起来,只对外提供一个简单的接口。

下面我们就简单的实现一个外观模式,以电脑的启动为例:

代码语言:javascript
复制
class CPU {
    public void processData() { }
}
 
class Memory {
    public void load() { }
}
 
class HardDrive {
    public void readdata() { }
}
 
/* Facade */
class Computer {
    private CPU cpu;
    private Memory memory;
    private HardDrive hardDrive;
 
    public Computer() {
        this.cpu = new CPU();
        this.memory = new Memory();
        this.hardDrive = new HardDrive();
    }
 
    public void run() {
        cpu.processData();
        memory.load();
        hardDrive.readdata();
    }
}
 
 
class User {
    public static void main(String[] args) {
        Computer computer = new Computer();
        computer.run();
    }
}

外观模式将子系统的方法封装起来,提供一个更上层的接口,提供更简单的访问

![Upload Paste_Image.png failed. Please try again.]

外观模式的优缺点

优点

  • 减小系统间的相互依赖
  • 提高灵活性
  • 减小系统依赖
  • 提高安全性

缺点

  • 不符合开闭原则,对修改关闭,对扩展开放 我们知道外观模式将子系统封装起来,我们无法修改子系统,只能外部扩展
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.03.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 外观模式的优缺点
    • 优点
      • 缺点
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档