外观模式
定义:为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。它是为子系统中的一组接口所提供的一个一致的界面。
个人理解:门面模式嘛,假如你去一家4S店订购一台法拉利,你只需要告诉给4S店具体的需求(轮毂、内饰、中控等等),你不需要去每个工厂去取配件,最后4S店会给你一台你需要的车即可(有点类似于调停者模式了)。
UML图解:
优点:简化调用过程,可以更细致的划分访问的层次,可以解耦,可以很好的体现迪米特法则。
缺点:不符合开闭原则(要修改里面的逻辑)
代码:
生产车身
//生产车身
class CarBodyImpl implements CarBody {
//生产轮胎
@Override
public void createCarBody(){
System.out.println("我在生产车身");
}
}
interface CarBody{
void createCarBody();
}
生产轮胎
//生产轮胎
class TiresImpl implements Tires {
//生产轮胎
@Override
public void createTires(){
System.out.println("我在生产轮胎");
}
}
interface Tires{
void createTires();
}
//组装,最后交付
public class Car{
private static CarBody carBody = new CarBodyImpl();
private static Tires tires = new TiresImpl();
public static void main(String[] args) {
carBody.createCarBody();
tires.createTires();
}
}
总结:使用这个设计模式的最终目的就是减少接口的调用
感谢:https://blog.csdn.net/wujunyucg/article/details/78856821 提供的UML图解