设计模式——外观模式
来源:互联网 发布:叮叮聊天软件 编辑:程序博客网 时间:2024/06/08 09:49
个人理解:
1. 外观模式即:将多个子系统封装至一个类中,客户端通过该类可实现对多个子系统的调用
2. 示例代码中Audio、AudioImpl为音频系统,Camera、CameraImpl为音频系统,HuaweiPhone 为封装音频、视频系统的外观类,客户端只需要实例化HuaweiPhone即可调用音频、视频系统
3. 示例代码:
音频系统:
public interface Audio { void recordAudio(); void playAudio();}
public class AudioImpl implements Audio { @Override public void recordAudio() { Log.i("CameraImpl", "----------开始录制音频---------"); } @Override public void playAudio() { Log.i("CameraImpl", "----------开始播放音频---------"); }}
视频系统
public interface Camera { void takePhoto(); void takeVideo();}
public class CameraImpl implements Camera{ Audio audio; public CameraImpl(Audio audio) { this.audio = audio; } @Override public void takePhoto() { Log.i("CameraImpl", "----------摄像头开始照相---------"); } @Override public void takeVideo() { audio.recordAudio(); Log.i("CameraImpl", "----------摄像头开始录制视频画面---------"); }}
外观类
public class HuaweiPhone { Audio audio = new AudioImpl(); Camera camera = new CameraImpl(audio); public void playMusic(){ audio.playAudio(); } public void recordVideo(){ camera.takeVideo(); }}
客户端调用
private void factoryFacade(){ HuaweiPhone phone = new HuaweiPhone(); Log.i("factoryFacade", "****************开始播放音乐****************"); phone.playMusic(); Log.i("factoryFacade", "****************开始录制视频****************"); phone.recordVideo();}
运行结果
11-30 18:00:10.773 23671-23671/com.wdp.designtest I/factoryFacade: ****************开始播放音乐****************
11-30 18:00:10.774 23671-23671/com.wdp.designtest I/CameraImpl: ----------开始播放音频---------
11-30 18:00:10.774 23671-23671/com.wdp.designtest I/factoryFacade: ****************开始录制视频****************
11-30 18:00:10.774 23671-23671/com.wdp.designtest I/CameraImpl: ----------开始录制音频---------
11-30 18:00:10.774 23671-23671/com.wdp.designtest I/CameraImpl: ----------摄像头开始录制视频画面---------
4. 外观模式在Android中运用举例: Context 中封装了 Activity、Broadcast、Application等,可通过Context直接操作各个系统模块
- 设计模式—外观模式
- 设计模式—外观模式
- 设计模式—外观模式
- 每日设计模式——外观模式
- 浅谈设计模式——外观模式
- 设计模式——外观模式(Facade)
- 设计模式——外观模式
- JAVA设计模式——外观模式
- java设计模式——外观模式
- 设计模式——外观模式
- 结构性设计模式——外观模式
- 设计模式——外观模式
- 设计模式——外观模式
- 设计模式(4)——外观模式
- C++设计模式——外观模式
- 设计模式——外观模式(FacadePattern)
- 设计模式——外观模式
- 设计模式<三>——外观模式
- lg1498 南蛮图腾
- 闲着看看geoserver
- 解决AndroidStudio连不上Android设备真机的问题
- Logger框架源码解析
- 基于Ubuntu16.04和caffe安装CPU版本的SSD检测框架
- 设计模式——外观模式
- 如何不输入项目名端口号直接访问java web项目
- 菜鸟编程 关于一维数组与二维数组
- jjdxm-ijkPlayer开源视频框架简单的日常使用
- 单例模式
- Find More Coins (30)
- vue2.0+watch()
- 代码插入功能使用
- Java第十八天~第十九天/11.25~11.26