门面模式 Facade Pattern
子系统的外部与其内部的通信必须通过统一的对象进行
提供一个高层次的接口,使得子系统更易于使用
引入门面模式之前
我想建个房子,必须自己找泥水匠、搬运工搬砖、水泥工砌墙
引入门面模式之后
我想建个房子,直接找包头工就可以了,包头工在负责找泥水匠、搬运工搬砖、水泥工砌墙
代码实现如下
调用方
public class Client {
public static void main(String[] args) {
LabourContractor labourContractor=new LabourContractor();
labourContractor.buildHouse();
}
}
包工头
public class LabourContractor{
private MasonWorker worker1=new MasonWorker();
private BrickWorker worker2=new BrickWorker();
private BrickLayer worker3=new BrickLayer();
public void buildHouse(){
worker1.mix();
worker2.carry();
worker3.neat();
}
}
泥瓦匠
public class MasonWorker {
public void mix() {
System.out.println("泥瓦匠开始和水泥!");
}
}
砖头搬运工
public class BrickWorker {
public void carry(){
System.out.println("砖头我搬了,搬砖使我快乐");
}
}
砌墙工
public class BrickLayer{
public void neat(){
System.out.println("有了水泥和砖,我可以愉快地砌墙了");
}
}
运行结果
泥瓦匠开始和水泥!
砖头我搬了,搬砖使我快乐
有了水泥和砖,我可以愉快地砌墙了
门面模式
通过slf4j 实现对多种日志框架的兼容
Simple Logging Facade for Java