设计模式之:门面模式

门面模式定义:
门面模式要求一个子系统的外部与其内部的通信必须通过一个统一的门面(Facade)对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

使用场景:
1.为一个复杂的模块或子系统提供一个供外界访问的接口。
2.子系统相对独立——外界对子系统的访问只要黑箱操作即可。
门面模式是一种最常用的封装模式,就算你压根不懂设计模式,也肯定用过门面模式。

下面是一个抽象出来的例子,一个客户端(你)是怎样通过一个 facade(计算机)来访问一个复杂的系统(计算机的内部,比如说 CPU 和硬盘驱动器)。
// 复杂的部分

class CPU {
    public void freeze() { ... }
    public void jump(long position) { ... }
    public void execute() { ... }
}
class Memory {
    public void load(long position, byte[] data) { ... }
}

class HardDriver {
    public byte[] read(long lba, int size) { ... }
} 

// Facade
class ComputerFacade {
    private CPU processor;
    private Memory ram;
    private HardDriver hd;

    public ComputerFacade() {
        this.processor = new CPU();
        this.ram = new Memory();
        this.hd = new HardDriver();
    }

    public void start() {
        processor.freeze();
        ram.load(BOOT_ADDRESS, hd.read(BOOT_SECTOR, SECTOR_SIZE));
        processor.jump(BOOT_ADDRESS);
        processor.execute();
    }
}   
// Client
class You {
    public static void main(String[] args) {
        ComputerFacade computer = new ComputerFacade();
        computer.start();
    }
}   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CHAO_^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值