外观模式,又叫门面模式
- 外部对子系统的通信必须要有一个统一的门面对象进行.
- 一个复杂系统可以有几个门面
- 满足迪米特法则(一个类和尽量少的类产生关联)
什么时候用门面模式呢?
当要和外围系统交互的时候,我们一般只暴露最后的功能,而不把怎么实现的各个细节相关的类都扔出去.这样子系统的内部结构可以随意变化而不影响其他系统.和现在微服务思想差不多.都是通过API调用.service as function...
示意图:
image.png
代码示例:
package com.byedbl.facade;
/**
* <pre>
* 门面模式
*
* 比如我现在想建一个房子,大家知道建房子很复杂,要砌墙,造门,装修等等等....
* 如果不用门面模式,那我们要对整个的创建过程很熟悉,有了门面模式之后就很简单了
* 门面类提供方法叫建房子createRoom,我直接调用就可以啦,完全不用管里面具体要干什么
*
* 利用门面模式,我们可以大大减少外围系统和其他子系统的各种复杂交互
* @author : zengzhijun
* @date : 2018/5/24 10:03
**/
class Wall {
public Wall() {
System.out.println("Create a wall !");
}
}
class Door {
public Door() {
System.out.println("Create a door !");
}
}
class FacadeRoom {
public void createRoom() {
Wall wall1 = new Wall();
Wall wall2 = new Wall();
Wall wall3 = new Wall();
Wall wall4 = new Wall();
Door door = new Door();
}
}
public class Test {
public static void main(String[] args) {
FacadeRoom room = new FacadeRoom();
room.createRoom();
}
}
网友评论