前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++接口隔离示例(设计模式)

C++接口隔离示例(设计模式)

作者头像
Qt君
发布2019-07-15 16:02:02
8620
发布2019-07-15 16:02:02
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程

本文介绍C++设计模式中的接口隔离示例。使用接口隔离独立性好,且只限于它的接口(单一性原则)。

相同的返回却不同的操作

  • Device类继承于 AudioDeviceVideoDevice;
  • Device中:
代码语言:javascript
复制
AudioDevice *audioDevice() { return this; } // 接口隔离VideoDevice *videoDevice() { return this; } // 接口隔离
  • 由于都返回 this指针,但实际只能访问到对应的返回值,这就是接口隔离的核心所在。

使用基本套路

  • 单一原则的继承;
  • 接口的返回。

示例

代码语言:javascript
复制
#include <iostream>
using namespace std;
class AudioDevice {public:    AudioDevice() {}    void open() { cout<<"Open Audio Device."<<endl; }    void close() { cout<<"Close Audio Device."<<endl; }};
class VideoDevice {public:    VideoDevice() {}    void open() { cout<<"Open Video Device."<<endl; }    void close() { cout<<"Close Video Device."<<endl; }};
class Device : public AudioDevice, public VideoDevice {public:    Audio() {}
    AudioDevice *audioDevice() { return this; } // 接口隔离    VideoDevice *videoDevice() { return this; } // 接口隔离};
int main(int argc, char *argv[]){    Device device;    device.audioDevice()->open();    device.audioDevice()->close();
    device.videoDevice()->open();    device.videoDevice()->close();    return 0;}

关于更新

  • 文章首发于微信公众号 你才小学生(nicaixiaoxuesheng)
  • 后续更新于Qtbig哥(qtbig.com)
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相同的返回却不同的操作
  • 使用基本套路
  • 示例
  • 关于更新
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档