门面模式 Facade Pattern

门面模式作为子系统与外部通信的统一接口,简化了交互过程。例如,在建造房屋的例子中,通过包工头(门面)协调泥工、搬砖工和砌墙工的工作,使得客户端只需与包工头交互即可。该模式实现包括子系统类和门面类,门面类提供高层面的接口,整合子系统多个方法,提高使用便捷性。
摘要由CSDN通过智能技术生成

门面模式:子系统的外部与其内部的通信必须通过统一的对象进行

重点:提供一个高层次的接口,使得子系统更易于使用

举一个例子:比如我想要建一个房子,我需要找到和泥工,搬砖工,砌墙工,并且需要协调他们之间的工作。

使用门面模式,就相当于以上的工作,我只需要找到一个包工头(门面),他来帮我协调好各种工人的工作,我只需要和包工头对接就可以

实现:

首先实现子系统类

//和泥工
public class Mason {
    public void mix()
    {
        System.out.println("泥我和好了~");
    }
}
//搬砖工
public class BrickWorker {
    public void carry()
    {
        System.out.println("砖头我搬了,搬砖使我快乐~");
    }
}
//砌墙工
public class BrickLayer {
    public void neat()
    {
        System.out.println("有了水泥和砖,我可以愉快的砌墙了~");
    }
}

门面类

门面类的方法可以不止一个,子系统方法也可以不止一个

门面提供的方法主要是对子系统方法的整合。

//包工头
public class LabourContractor {
    private Mason worker1=new Mason();
    private BrickWorker worker2 = new BrickWorker();
    private BrickLayer worker3 = new BrickLayer();
    public void buildHouse()
    {
        worker1.mix();
        worker2.carry();
        worker3.neat();
    }

}

客户端调用

public class Client {
    public static void main(String [] args)
    {
        LabourContractor labourContractor=new LabourContractor();
        labourContractor.buildHouse();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值