定义:
通过一个门面来封装对多个子系统的调用行为,实现客户消费系统和多个子系统之间的解耦。
要点:
定义门面类封装对多个子系统的调用行为
实例:
这个实例从类结构上看跟装饰模式一样,但心里要清楚,这两种模式解决的问题侧重点是不一样的。装饰器模式旨在在系统原功能上增加额外的功能;门面模式旨在实现客户系统和多个子系统间的解耦。
public interface Car {
public void start() throws Exception;
}
public class BaomaCar implements Car {
@Override
public void start() throws Exception {
// TODO Auto-generated method stub
System.out.println(" 宝马车启动 ");
}
}
public class BenchCar implements Car {
@Override
public void start() throws Exception {
// TODO Auto-generated method stub
System.out.println(" 奔驰车启动 ");
}
}
public class Facade implements Car{
private Car benchCar;
private Car baomaCar;
public Facade( ){
}
public Facade( Car benchCar,Car baomaCar ){
this.benchCar = benchCar;
this.baomaCar = baomaCar;
}
@Override
public void start() throws Exception {
benchCar.start();
baomaCar.start();
}
}
public class Client {
/**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
Car baomaCar = new BaomaCar();
Car benchCar = new BenchCar();
Car facade = new Facade(benchCar,baomaCar);
facade.start();
}
}