- 博客(14)
- 收藏
- 关注
原创 proxy 模式示例
#include "Publicinc.hpp"class Image{public: virtual ~Image() { } virtual void Display() = 0;};class RealImage : public Image{public: RealImage(const
2018-01-30 18:07:31
178
原创 observer 简单实例
#include "Publicinc.hpp"class Observer{public: virtual ~Observer() { } virtual void Update(int n) = 0;};class Subject{ typedef std::vector ObserverList; type
2018-01-30 16:04:59
311
原创 可撤销的command pattern
#include "Publicinc.hpp"// Receiverclass Receiver{public: string GetContent() const { return m_content; } void SetContent(const string& content) { m_content = content; } void
2018-01-30 11:42:16
191
原创 visit pattern
#include "Publicinc.hpp"enum Gender{ Man = 0, Woman = 1,};class CStudent;class CTeacher;class CVisitor{public: virtual ~CVisitor() {} virtual void visi
2018-01-29 15:18:02
203
原创 function 的简单实现
template class Invoker_Base{public: virtual R operator()(Arg arg) = 0;};template class Function_Ptr_Invoker : public Invoker_Base{private: typedef R (*FUNC
2018-01-26 17:27:16
465
原创 command 模式示例
// receiverclass Tape_Recorder{public: void Play() { printf("since my baby left me: \n"); } void Stop() { printf("ok. taking a break.\n"); }
2018-01-26 12:19:34
201
原创 常用排序算法的效率
int Partition(int* data, int low, int high){ int key = data[low]; while (low while (low if (key --high; } else {
2018-01-25 11:24:30
244
原创 工厂模式和单例模式
#include #include using namespace std;class AbstractProductA{public: virtual ~AbstractProductA() {} virtual void Operation() = 0;};class AbstractProductB{public:
2018-01-09 14:32:11
193
原创 设计模式之一: 简单工厂模式
在读大话模式, 进行笔记,简单工厂模式,C++代码引入这个模式之前, 首先是面向对象的三大特性, 封装,继承,和多态;首先看有一个 计算器的功能:如果按照 过程化写的代码,就是数据输入和业务逻辑是合在一起的;所以用到了c++的封装的特性,将计算的业务封装成了一个类:class Operation {public: static double GetResul
2017-06-28 00:06:47
213
原创 继承,实现,关联,聚合,组合,依赖几种关系的介绍
继承: generalization继承是一种泛化的关系,是子类和父类之间的纵向关系;例如: 水果(一般化), 苹果,香蕉,橘子,榴莲(相对具体化);在逻辑上,子类是父类的一种,是“is-a”的关系;通常逻辑上具有上述关系("is-a")的类,就可以继承;子类继承父类,则子类拥有了父类的所有方法和属性;UML类图:实现:realization实现是类和接口之
2017-06-26 17:03:07
745
原创 __cplusplus 使用的一种场合
#ifdef __cplusplusextern "C"{#endifvoid func();#ifdef __cplusplus}#endif1, 这种写法通常用于C和C++混合编程的时候;2,C编译器和C++编译器都回用到这个头文件,当C++编译的时候,由于引入了 extern "C", 将会抑制对函数名和变量名的名称重整;3,所以对于给函数
2017-06-26 16:59:39
1841
原创 线程同步问题小记
// demo.cpp : 定义控制台应用程序的入口点。//#include #include #include #include #include #include #include #include using namespace std;CRITICAL_SECTION _critical;static DWORD WINAPI
2017-06-12 14:33:00
279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人