介绍
外观模式就是了解需要的子系统的属性或方法,然后把相关的子系统进行组合,产生的功能,然后为外界使用。
例子
假如我要组装一个自行车,就需要车轮子和车架子。对于外观组装自行车而言,它是使用车轮子和车架子组装。所以对于直接组装自行车的人并不关心车轮子和车架子是如何生产的。
样例代码
制造车轮子类:
//车轮子类
public class Wheel {
public void makeWheel(){
System.out.println("制造车轮子成功!");
}
}
制造车架子类:
//车架子类
public class Rack {
public void makeRack(){
System.out.println("制造车架子成功!");
}
}
组装自行车(外观类):
public class Bicycle {
private Rack rack;
private Wheel wheel;
public Bicycle(){
rack=new Rack();
wheel=new Wheel();
}
public void assembleBicycle(){
wheel.makeWheel();
rack.makeRack();
System.out.println("组装成功!");
}
}
测试:
public class Test {
public static void main(String[] args) {
Bicycle bicycle=new Bicycle();
bicycle.assembleBicycle();
}
}
总结
- 外观模式实际上就是子系统的一组接口或者子系统类提供到高层类或者高层接口中,便于高层类规定其执行顺序等,方便了高层类对于子系统接口或者子系统类的使用。
- 这种模式的应用:譬如在mvc设计模式中,分出了表现层,控制层,模型层,将层与层的关系使用外观模式封装起来,这样每层只需提供一个接口,而不用将三层架构相互依赖混在一起。实现了解耦。