![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 75
zhouzhenhe2008
这个作者很懒,什么都没留下…
展开
-
设计模式之pimpl惯用法C语言版(城门失火 殃及池鱼)
我们平时无意中就使用了pimpl模式,pimpl即pointer to implementation,“指向实现的指针”缩写,主要避免在头文件中暴露私有细节,降低编译依赖,促进API接口和实现的完全分离的重要方法。 比如我们有个打印几个数据的api,头文件pimpl_pattern.h#ifndef __PIMPL_PATTERN_H__#define __PIMPL_原创 2017-06-28 22:52:04 · 666 阅读 · 1 评论 -
设计模式之pimpl惯用法C++版
类D使用类A,类B作为成员变量,以下是头文件pattern.h#ifndef PATTERN_H#define PATTERN_Hclass A{public: A(int m); A(); void print();private: int m_a;};class B{public: B(int m); B(); void print();原创 2017-07-01 11:40:51 · 1546 阅读 · 0 评论 -
单例模式C++实现
单例模式,即只有一个实例。通常是一般的嵌入式设备或者要求占内存低的C++软件程序需要的模式。常见的单例实现#include class Single{public: static Single * GetInstance();private: Single(); ~Single(); Single(const Single &); const Si原创 2017-07-02 18:33:33 · 257 阅读 · 0 评论 -
适配器模式C++实现
适配器设计模式将一个类的接口转换为一个兼容的但不相同的接口。与代理模式的相似之处是,适配器模式也是一个单一组件的包装器,但适配器类的接口可以与原始类的不同。举个工作上用到的例子,比如一般的芯片厂商都会媒体播放的API,比如博通,提供了一个媒体播放类BcmMedia,BcmMedia有接口void start(char *filename)。我们可以设计一个适配器,对应用原创 2017-07-05 23:52:32 · 334 阅读 · 0 评论 -
外观模式C++实现
外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,使得这一子系统更加容易使用。(不关心底层函数的实现)比如,一个下班回家的动作:打卡,乘坐交通工具,拿钥匙开门。我们可以把这个下班回家封装成一个高层接口,对外隐藏下班回家过程中的子动作(打开,乘坐工具,开门)。又比如,模块化编程中,对客户提供一个初始化接口Init(),然后该Init()接口里去做N个模块的初始原创 2017-07-06 19:14:31 · 322 阅读 · 0 评论 -
包装模式之代理模式C++实现
#include class TrueObject;class TrueObject{public: int do_something(int a) { std::cout<<"TrueObject a="<< a << std::endl; return 0; }};class Proxy{public: Proxy() { m_Ture原创 2017-07-04 20:44:13 · 352 阅读 · 0 评论 -
观察者模式C++实现
观察者模式是一个应用非常广的模式之一,定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。当一个对象发生了变化,关注它的对象就会得到通知;这种交互也称为发布-订阅(publish-subscribe)。目标是通知的发布者,它发出通知时并不需要知道谁是它的观察者。 比如发布者(电子杂志),订阅者有张三、张四、张五,这几个人就是观察者。发原创 2017-07-08 12:58:07 · 4561 阅读 · 0 评论 -
API设计的基本工作流程及需求分析
1.API设计的基本工作流程:从问题的分析开始,设计解决方案,然后实现设计方案。这是一个持续迭代的过程,增加新需求时需要重新评估设计方案,还有一些其他原因,如修复了重要的编程错误也会导致设计方案的修改。 API开发过程中从分析到设计再到实现的不同阶段 2.收集功能性需求软件开发的需求一般有业务需求、功能性需求、非功能性需求。功能性需求,简单的来说,要理解需要原创 2017-07-08 21:16:02 · 2893 阅读 · 0 评论