
设计模式
pynash123
这个作者很懒,什么都没留下…
展开
-
c++ builder生成器模式
模式定义: 生成器模式是为了解决将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不的表示的问题。对象的构建过程相对稳定。 适用情况: 1、当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 2、当构造过程必须允许被构造的对象有不同的表示时。 生成器模式有点类似于template method,都是某个过程的总体流程固定,具体每一步可变。生成器模式是对象的构建过程相对...原创 2019-12-11 10:57:34 · 254 阅读 · 0 评论 -
c++template method模板方法
模板方法一般在类库里面比较常见,类库里把实现某一功能需要的各个步骤逻辑实现好,调用者只需要按照需要重新修改某几步。框架是相对稳定的,变化隔离在客户程序。 例如实现某一功能逻辑如下 step1() step2() if (step()3) setp4() setp5() step2和step4不同用户有不同实现,其他步骤固定 将上述逻辑用模板方法实现 template_method_lib.h #i...原创 2019-12-06 21:42:17 · 404 阅读 · 0 评论 -
c++工厂模式
简单写了一个工厂模式 在这种模式下,有新增的类时,FileAccessFasctory.h 和FileWork,cpp这两个文件是稳定的,不需要修改,只需要修改FileAccess.h和FileAccess.cpp,或者新增文件,这样就在业务逻辑中隔离变化;同时也可以实现增量编译,也不会影响业务代码的单元测试。 FileAccessFasctory.h #ifndef _FILE_ACCESS_F...原创 2019-12-05 21:33:51 · 181 阅读 · 0 评论 -
c++单例模式
下面代码实现了三种常见的单例模式 #include <iostream> #include "pthread.h" using namespace std; pthread_mutex_t g_single_lock; class Single { public: //函数内的局部静态变量在编译时已经分配空间,在第一次函数跑到这里时初始化,之后不再初始化 ...原创 2019-07-24 16:49:04 · 179 阅读 · 0 评论 -
c++组合模式
将内部数据结构与客户代码隔离,不论内部结构是什么样子,客户代码调用方式不变(invokeAll函数) component.h #ifndef _THREAD_POOL_H #define _THREAD_POOL_H #include <list> #include <string> using namespace std; class component { publ...原创 2019-12-04 23:59:19 · 146 阅读 · 0 评论