外观模式

264 阅读1分钟

外观模式定义

由主体去定义方法,由子类去实现方法,隐藏具体实现方式,好似购买商品你不需要知道商品怎么制作生产一般,在乎的是他的原料和味道。和面向对象的理念一样,私有化属性,公开获取方式一样。

外观模式实现方式

public interface FaceInterface {
    void food();
}

主体 定义了公开的方法。

public class Production implements FaceInterface{
    @Override
    public void food() {
        // 招工 买器材等等....
        System.out.println("生产完成");
    }
}
public class Purchase implements FaceInterface{
    @Override
    public void food() {
        // 筛选材料 采购洽谈等等....
        System.out.println("采购来源xx");
    }
}

子类内定义具体的是实现方式。

public class SuperMarket {

    private FaceInterface pur;
    private FaceInterface pro;

    public SuperMarket() {
        this.pur = new Purchase();
        this.pro = new Production();
    }

    public void getPur() {
        pur.food();
    }

    public void getPro() {
        pro.food();
    }
}

通过构造注入方式,传入外观模式类下以供调用。

public class FaceTest {

    public static void main(String[] args) {
        SuperMarket superMarket = new SuperMarket();
        superMarket.getPur();
        superMarket.getPro();

    }
}

测试类

采购来源xx
生产完成

Process finished with exit code 0

外观模式小结

  • 优点:减少系统相互依赖。 提高灵活性。 提高了安全性。
  • 缺点:修改原有外观模式实现类只能修改原有子类代码,无法继承无法重写。可能会造成其他调用该类的方法出问题耦合度较高

详细源码下载地址: github.com/Liyinzuo/De…

以上便是外观模式介绍,如有错误或者不足地方欢迎指正。