目录
- 外观设计模式定义
- 使用场景
- 代码实现
外观模式定义
子系统的外部与其子系统通信使用唯一对象进行,这样隐藏系统的复杂性,并向客户端提供了一个可以访问系统的接口。
使用场景
- 为一个复杂子系统提供一个简单接口,对外隐藏子系统的具体实现、隔离变化。
- 需要构建一个层次结构的子系统,使用外观模式可以定义子系统的入口。
代码实现
// 相机子系统
public class Camera {
public void open() {
System.out.println("开启相机");
}
public void close() {
System.out.println("关闭相机");
}
public void takePic(){
System.out.println("拍摄照片");
}
}
// 通话子系统
public class Phone {
public void call(){
System.out.println("打电话");
}
public void huangUp(){
System.out.println("挂断");
}
}
// Phone 和 Camera 两个子系统的唯一适用对象
public class MobilePhone {
private Phone mPhone = new Phone();
private Camera mCamera = new Camera();
public void takePhone() {
mPhone.call();
System.out.println("通话3s");
mPhone.huangUp();
}
public void takePic() {
mCamera.open();
mCamera.takePic();
mCamera.close();
}
}
// 客户端使用
public class FacadeTest {
@Test
public void test() {
MobilePhone mobilePhone = new MobilePhone();
mobilePhone.takePhone();
System.out.println("=============");
mobilePhone.takePic();
}
}
// 结果
打电话
通话3s
挂断
=============
开启相机
拍摄照片
关闭相机