码迷,mamicode.com
首页 > 其他好文 > 详细

外观模式

时间:2020-02-19 06:00:43      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:--   用户   封装   www   new   system   ide   电话   hang   

个人博客

http://www.milovetingting.cn

外观模式

模式介绍

外观模式在开发过程中的运用频率非常高。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。外观模式是我们封装API的常用手段。

模式定义

要求一个子系统的外部与内部通信必须通过一个统一的对象进行。

使用场景

  1. 为一个复杂子系统提供一个简单接口。

  2. 当需要构建一个层次结构的子系统,用外观模式定义子系统中每层的入口点。

简单使用

定义Phone接口

public interface Phone {
    void dial();
    void hangup();
}

定义Phono实现类

public class PhoneImpl implements Phone {

    @Override
    public void dial() {
        System.out.println("打电话");
    }

    @Override
    public void hangup() {
        System.out.println("挂断");
    }

}

定义Camera接口

public interface Camera {
    void open();

    void takePhoto();

    void close();
}

定义Camera实现类

public class CameraImpl implements Camera {

    @Override
    public void open() {
        System.out.println("打开相机");
    }

    @Override
    public void takePhoto() {
        System.out.println("拍照");
    }

    @Override
    public void close() {
        System.out.println("关闭相机");
    }

}

定义MobilePhone类

public class MobilePhone {

    private Phone mPhone = new PhoneImpl();

    private Camera mCamera = new CameraImpl();

    public void dail() {
        mPhone.dial();
    }

    public void hangup() {
        mPhone.hangup();
    }

    public void takePhoto() {
        mCamera.open();
        mCamera.takePhoto();
    }

    public void closeCamera() {
        mCamera.close();
    }

    public void videoChat() {
        System.out.println("-->视频聊天接通中");
        mCamera.open();
        mPhone.dial();
    }

}

调用

public class Main {

    public static void main(String[] args) {
        MobilePhone mobilePhone = new MobilePhone();
        mobilePhone.takePhoto();
        mobilePhone.videoChat();
    }

}

输出结果

打开相机
拍照
-->视频聊天接通中
打开相机
打电话

外观模式

标签:--   用户   封装   www   new   system   ide   电话   hang   

原文地址:https://www.cnblogs.com/milovetingting/p/12329529.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!