概念
通过一个外观类,使整个系统的接口只有一个统一的高层接口,这样子系统的内外部通信通过一个统一的对象进行,使得子系统更易使用。(其实我们用到的很多SDK都有,比如glide的Glide对象,Picasso等)
实现方式
- Facade —— 系统对外统一接口对象
- SystemA SystemB SystemC —— 子系统接口
比如移动手机(MobilePhone)看作统一接口,内部有普通手机功能子系统(Phone),拍照子系统(Camera)
public class MobilePhone {
private Phone phone = new PhoneImpl();
private Camera camera = new CameraImpl();
public void call(){
phone.call();
}
public void takephoto(){
camera.tackphoto();
}
}
public interface Phone{
void call();
}
public class PhoneImpl implements Phone {
@Override
public void call(){
System.out.println("call");
}
}
public interface Camera {
void takephoto();
}
public class CameraImpl implements Camera {
@Override
public void takephoto(){
System.out.println("takephoto");
}
}