http://blog.csdn.net/feixiaoxing/article/details/7075316
原型模式简单的理解,就是支持两个对象的复制。
原文有些啰嗦,修改如下:
1)结构体增加复制接口
- typedef struct _DATA
- {
- struct _DATA* (*copy) (struct _DATA* pData);
- // 结构体数据
- }DATA;
- struct _DATA* data_copy_func(struct _DATA* pData)
- {
- DATA* pResult = (DATA*)malloc(sizeof(DATA));
- assert(NULL != pResult);
- memmove(pResult, pData, sizeof(DATA));
- return pResult;
- };
- struct _DATA* clone(struct _DATA* pData)
- {
- return pData->copy(pData);
- }
- Data_A = malloc(sizeof(_DATA));
- Data_a->copy = data_copy_func;
- //其他处理,A的赋值或引用
- Data_B = clone(Data_A);
- 或者,当然前者更好。
- Data_B = Data_A->copy(Data_A);
-