java设计模式学习笔记--外观模式

生活场景

大家可能为了有一台满足自己需求的电脑,你可能会选择自己到各大厂商买配件。自己组装,但是这样需要熟悉硬件,还要考虑他们之间的兼容性。你也可能找到一家装机公司,让他们代理实现。那么这个装机公司就相当于外观模式(Facade)。


在代码中,各个零件厂商就相当于各种功能模块,客户端需要组装自己的功能模块,他们同样需要知道十分了解这些功能模块的功能,非常麻烦。所以就出现了facade模式。
由上所述可以知道facade模式有以下作用:
1.封装交互,简化调用
2.松散了客户端与子系统之间的耦合
3.更好的划分访问层次


实现形式

public class Screen {
    public void size() {
        System.out.println("大小:14英寸");
    }
}

public class Memory {
    public void capacity() {
        System.out.println("容量:4G");
    }
}

public class OS {
    public void type() {
        System.out.println("系统:win8");
    }
}

public class ComputerFacade {
    public void facade1() {
    //下面这些组件的属性可以添加到配置文件,然后将读取到的信息添加到对应的构造函数中,以此实现不同的外观
        Screen screen = new Screen();
        screen.size();
        OS os = new OS();
        os.type();
        Memory memory = new Memory();
        memory.capacity();
    }
}

public class Client {
    public static void main(String[] args) {
        ComputerFacade computerFacade = new ComputerFacade();
        computerFacade.facade1();
    }
}

大家可能觉得这种模式用处不大,只是将客户端代码写进了facade中,但是facade位于系统这边。
所以有以下优点:
1.未来如果模块的算法发生了变化,只用修改facade的实现就好了 。
2.facade可以被多个客户端使用,提高了代码的复用。
3.对于使用facade的使用者来说,大大节省了他们学习的成本,他们只需了解facade就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值