门面模式

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

这里写图片描述

Facade门面角色:知道所有子系统的功能和责任。客户所有的请求都是通过门面角色委派到子系统处理,而自身没有没有业务逻辑
subsystem子系统:可以有一个或多个子系统。每一个子系统是一个完整的功能模块,子系统不知道门面角色的存在,门面仅仅是一个客户端而已

这里写图片描述
门面将复杂的子系统整合为简单的接口对外使用

class A{
    public void doSomeThingA(){ }
}

class B{
    public void doSomeThingB(){ }
}

class C{
    public void doSomeThingC(){ }
}
//门面类
class Facade {
    private A a = new A();
    private B b = new B();
    private C c = new C();

    public void methodA(){
        a.doSomeThingA();
    }

    public void methodB(){
        b.doSomeThingB();
    }

    public void methodC(){
        c.doSomeThingC();
    }
}
优点:

减少系统的相互依赖
提高灵活性
提高安全性

缺点:

门面类不符合开闭原则。当门面类出问题时,继承、覆写都解决不了问题,只能修改。

应用

为一个复杂的模块或子系统提供一个对外的访问接口
子系统相对独立,外界对子系统的访问时黑盒操作
预防低水平人员带来的风险扩散

注意事项

一个子系统可以有多个门面
门面不需要参与子系统内的业务逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值