快速上手设计模式10 - 外观模式

外观模式概念:隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口

很好理解的例子:电脑买好了,只需要按“开机”键就开机了,但对系统来讲开机过程其实挺复杂的,这个开机键就是外观模式的接口,而系统内部的复杂操作不需要外界知道。

开机过程需要启动主板、CPU、内存

/** 主板类 */
public class Mainboard {
    public void startMainboard() {
        System.out.println("正在启动主板");
    }
}

/** CPU类 */
public class CPU {
    public void startCPU() {
        System.out.println("正在启动CPU");
    }
}

/** 内存类 */
public class Memory {
    public void startMemory() {
        System.out.println("正在启动内存");
    }
}

然后创建外观类,对外提供一键开机功能

public class ComputerFacade {
    private CPU cpu;
    private Mainboard mainboard;
    private Memory memory;

    public ComputerFacade() {
        cpu = new CPU();
        mainboard = new Mainboard();
        memory = new Memory();
    }

    /** 一键开机 */
    public void startComputer() {
        mainboard.startMainboard();
        cpu.startCPU();
        memory.startMemory();
        System.out.println("...开机完成...");
    }
}

客户端

ComputerFacade facade=new ComputerFacade();
facade.startComputer();//一键开机

输出结果

正在启动主板
正在启动CPU
正在启动内存
...开机完成...

外观模式的核心就是创建一个外观类,对外隐藏复杂的内部操作,同时提供一个高层的入口供外部访问,简化了客户端的操作

总结:
1. 外观模式比较简单,主要是为复杂的模块或子系统提供外界访问的简单入口,因此适用于子模块相对独立的复杂操作
2. 外观模式让各个子模块相互解耦,增加了系统的灵活性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值