外观模式定义
由主体去定义方法,由子类去实现方法,隐藏具体实现方式,好似购买商品你不需要知道商品怎么制作生产一般,在乎的是他的原料和味道。和面向对象的理念一样,私有化属性,公开获取方式一样。
外观模式实现方式
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…
以上便是外观模式介绍,如有错误或者不足地方欢迎指正。