门面模式:子系统的外部与其内部的通信必须通过统一的对象进行
重点:提供一个高层次的接口,使得子系统更易于使用
举一个例子:比如我想要建一个房子,我需要找到和泥工,搬砖工,砌墙工,并且需要协调他们之间的工作。
使用门面模式,就相当于以上的工作,我只需要找到一个包工头(门面),他来帮我协调好各种工人的工作,我只需要和包工头对接就可以
实现:
首先实现子系统类
//和泥工
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();
}
}