外观模式的定义是,为子系统中的一组接口提供一个一致的interface接口界面。
外观模式是个很简单,但很重要的模式,它主要思想是将表现层和逻辑层隔离,封装底层的复杂处理,只为用户提供简单的接口,这样的例子随处可见。外观模式也叫门面模式,它很多时候更是一种系统架构的设计,在我所做的项目中,就实现了门面模式的接口,为复杂系统的解耦提供了最好的解决方案。在WEB开发中的MVC分层架构就是典型的一个外观模式,每一层将操作的具体内容隐藏起来,保留一个接口供上层调用。
我们还是通过一个例子来加深理解。
新建赛车类:
public class Car {
public void start() {
System.out.println("车子已启动");
}
public void check_stop() {
System.out.println("刹车检查");
}
public void check_box() {
System.out.println("检查油箱");
}
public void check_console() {
System.out.println("检查仪表盘是否异常");
}
}
新建赛车操作的外观类:
public class Car_facade_imple {
public void car_go_go(Car car_ref) {
car_ref.check_box();
car_ref.check_console();
car_ref.check_stop();
car_ref.start();
}
}
这样,我们的客户端就可以通过调用这些赛车操作的外观类了:
public class Run_main {
public static void main(String[] args) {
Car_facade_imple car_facade_imple_ref = new Car_facade_imple();
car_facade_imple_ref.car_go_go(new car());
}
}
程序运行结果如下:
检查油箱
检查仪表盘是否异常
刹车检查
车子已启动
很简单吧,将子操作用一个外观接口封装起来,然后调用这个接口就是调用那些非常复杂的微操作了。