外观模式

386 阅读1分钟

概念

通过一个外观类,使整个系统的接口只有一个统一的高层接口,这样子系统的内外部通信通过一个统一的对象进行,使得子系统更易使用。(其实我们用到的很多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");
    }
}