设计模式
xunshuidezhu
这个作者很懒,什么都没留下…
展开
-
c++ 装饰器设计模式
装饰器设计模式就是在原有类的基础上增加一些装饰功能,顶层的接口实现子类作为要实例化的对象,传到装饰器中,增加特定装饰器的功能,我习惯用代码解释,直接看代码.这段代码包含了两个例子,都是先定义一个顶层的接口,然后定义装饰器抽象类,里面维护了一个接口的指针,在具体的装饰器中,通过构造函数传递顶层接口的实现子类指针,借助多态机制实现装饰功能.#include <bits/stdc++.h...原创 2019-11-24 15:04:31 · 177 阅读 · 0 评论 -
c++ pimpl编程技法
之前写过一次关于pimpl的博文,最近写代码又频繁遇到这个,再次总结一次.先来看一段代码,这段代码中无论Impl中的print函数如何更改,客端调用Shape的print接口都不用更改,因此降低了接口的耦合性.屏蔽掉了接口的具体实现方式.另一个作用就是降低了头文件之间的依赖关系,大大降低编译时间#include <bits/stdc++.h>using namespace...原创 2019-11-24 14:57:28 · 190 阅读 · 0 评论 -
c++实现反射
https://blog.csdn.net/q1007729991/article/details/56012253转载 2019-10-07 16:15:56 · 178 阅读 · 0 评论 -
环形缓冲区
本来是leetcode 一道题,环形缓冲区也是一样的设计思路,记录一下class MyCircularQueue {private: vector<int> data; // 存放循环队列的数据 int head; // 循环队列头 int tail; // 循环队列尾 int len; // 循...原创 2019-09-01 19:33:00 · 187 阅读 · 0 评论 -
设计模式六大原则
1.单一原则(Single Responsibility Principle):一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化; a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改变原有父类的功能;...原创 2019-08-30 16:05:31 · 66 阅读 · 0 评论 -
trivial,non-trival, pod
Trivial(平凡)和Non-Trivial(不平凡)是对于class(类)的或者类中的四个函数而言的: 1.构造函数 2.拷贝构造函数 3.赋值函数 4.析构函数Trivial其中Trivial(平凡)的概念本人的理解是无意义的,Trivial是相对于Non-Trivial而言的。Non-Trivial对于Non-Trivial而言的,如果上面四种函数满...原创 2019-07-15 14:08:22 · 1125 阅读 · 0 评论 -
reactor模式与事件驱动
https://blog.csdn.net/baidu20008/article/details/41378761转载 2019-07-14 13:48:24 · 298 阅读 · 0 评论 -
linux条件变量pthread_cond,生产者消费者模型
1.初始化条件变量pthread_cond_init#include <pthread.h>int pthread_cond_init(pthread_cond_t *cv,const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数cattr为空指针时,函数创建的是一个缺省的条件变量。...原创 2019-07-04 17:24:03 · 497 阅读 · 0 评论 -
PIMPL模式: Pointer to Implementation
1PIMPL解释 PIMPL(Private Implementation 或 Pointer to Implementation)是通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏。2.分析//x.hclass X{public: void Fun();private: int i; //add int i;};//c.h...原创 2019-07-01 15:11:27 · 478 阅读 · 1 评论 -
设计模式之对象组合与继承
1.什么是继承A继承B,说明A是B的一种,并且B的所有行为对A都有意义eg:A=WOMAN B=HUMANA=鸵鸟 B=鸟 (不行),因为鸟会飞,但是鸵鸟不会。2.什么是组合若在逻辑上A是B的“一部分”(a part of),则不允许B从A派生,而是要用A和其它东西组合出B。例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head应该由类...原创 2019-06-12 20:33:55 · 698 阅读 · 0 评论