摘要: 享元模式: 在设计实现包含大量对象的数据结构时,考虑将对象划分为可共享的部分和不可共享的部分,其中可共享的部分共享存储,不可共享的部分单独存储,从而节约存储空间。核心实现: 共享重复的数据。 使用hash_table、set等集合,有效的管理 本质上是一种压缩,是一种处理大数据的方式。适用场景: 对象个数极多 对象之间的重复属性特别多 常用于富格式文本的存储举例说明: 一个地图中,有很多很多用于装饰的植物,如花朵、草丛、仙人掌等等,众多的植物每一个都是一个对象,每个植物对象都有颜色、高度、坐标、当前帧、动画贴图等等,其中动画贴图将占据大量的内存空间。如果不使用享元模式,将会由于... 阅读全文
posted @ 2013-11-04 21:10 铁甲小宝 阅读(235) 评论(1) 推荐(1) 编辑
摘要: 拷贝构造函数在下面三种情况下被调用:拷贝初始化,如:A b(a);赋值初始化:如:A b = a;函数传形参:如:foo(A a)赋值运算只有一种情况会被调用:非初始化的赋值:如:A b; b = a;代码: 1 #include 2 #include 3 4 /*** 5 * @author:zanzan101 6 */ 7 8 inline void P(const char* str) 9 {10 printf("%s\n", str);11 }12 13 class A14 {15 private: 16 int _data;17 char* _name... 阅读全文
posted @ 2013-11-04 14:35 铁甲小宝 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 原型模式:属于创建型设计模式,直接复制一个已存在的实例作为新实例。背景补充: 创建型的设计模式,都属于工厂,内部实现产生实例的方法,对外开放一个获得实例的接口,将产生实例的方法与客户分离,降低耦合度。 使用原型模式,可以同时使用单例模式产生工厂实例,使用抽象工厂管理生产线,再使用原型模式返回对象。核心实现:实现拷贝构造函数。适用场景:实例非常复杂,设置非常麻烦,实例的初始化非常耗时;试图获得实例的客户并没有设置参数的能力,或者不想花费时间去设置参数。模型类图: 图 1 模型图举例说明:在本例中,同时使用了抽象工厂,单例模式和原型模式:工厂实例是通过单例模式创建的;客户需要的Tank实例是通过原 阅读全文
posted @ 2013-11-04 13:59 铁甲小宝 阅读(284) 评论(0) 推荐(1) 编辑