摘要: 装饰模式主要意图是为对象扩展额外的职责,但对于用户来说,在使用行为上并没有任何的变化。在此举一个例子来解释该模式的含义。假如你手上有一张照片,此时可以给它盖上一片玻璃片,同时再套上一个精美的相框。如此相片就更好看同时又被更好地防护起来。此处的玻璃片以及相框,对于原来的照片来说,都是起到一个装饰的作用 阅读全文
posted @ 2016-05-27 10:39 Jacc.Kim 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 组合模式意在将对象组合成树形结构以表示部分与整体的层次结构关系,并且用户对单个对象的操作以有对组合对象的操作都是一致的。即:组合对象 is-a 单个对象,同时又可以组合着 n 个的单个对象(甚至于其他组合对象也可以)。当对一个组合对象执行某行为会被转化为对其所组合的 n 个对象进行操作。一个组合对象 阅读全文
posted @ 2016-05-25 16:14 Jacc.Kim 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 桥接模式是为了将对象的抽象与实现分离,使得它们可以独立变化。简简单单的一句话,却已经是站在了更高抽象层面上来看待、设计、解决问题。平常我们多是对具体问题进行分析、抽象,然后就开始设计,这对多数情况下基本完全够用,毕竟实际项目中的功能模块都是找一“最优解的"实现来解决掉问题,把功能设计出来即可。这种情 阅读全文
posted @ 2016-05-25 12:05 Jacc.Kim 阅读(172) 评论(0) 推荐(0) 编辑
摘要: Adapter模式主要意图是将类或接口转换成客户期望的接口,从而使得原本不兼容、无法在一起工作的接口可以在一起工作。该模式有两种形式的Adapter法,一是继承方式;二是对象关联依赖方式。 继承方式Adapter法,相比之下,耦合性更强些,并且毕竟依赖于静态继承,如果被适配的对象有多个(派生)版本的 阅读全文
posted @ 2016-05-25 10:18 Jacc.Kim 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 生成器模式的主要思想:将产品对象的创建与表现分离开,并且同样的创建过程可以有不同的产品表现。 直白一点可以理解为:待创建的对象是复杂的,一般情况下是需要经过多个步骤的创建后,最终才能将完整产品创建好,而且每个步骤所创建的都只是产品的一部分而已。这一切的创建步骤,由统一的执导者来完成,称之为:Dire 阅读全文
posted @ 2016-05-23 21:06 Jacc.Kim 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 原型模式主要是用原型实例指定创建原型对象的种类,并且通过拷贝原型创建新对象。最简单的理解就是克隆。就如cocos2d-x中的 class Clonable::clone();该模式的主要目的是可以在运行时,随时创建出某个对象的副本,并且副本具有与本体一样的状态信息。类图参考如下: 模式的编码结构参考 阅读全文
posted @ 2016-05-18 20:33 Jacc.Kim 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 单例模式可以说是所有23种设计模式中最为简单的一个,没有之一。其主要思想就是保证整个应用环境中,最多只会有一个对象的实例。类关系图参考如下: 在c++中,单例模式的实现,较为常用的实现方式一般为: 1 namespace singleton 2 { 3 /********************** 阅读全文
posted @ 2016-05-17 20:31 Jacc.Kim 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍简单工厂模式与抽象工厂模式。以下如有叙述不当之处,欢迎批评指正,欢迎交流探讨。 一:简单工厂模式 在23种设计模式中,简单工厂模式其实是不在列的,但理解该模式对于抽象工厂模式的思想理解是有帮助的。就纯粹从字面上理解,简单工厂模式就是一种简单版的工厂模式。在日常开发过程中,相信绝大多数人都 阅读全文
posted @ 2016-05-17 10:10 Jacc.Kim 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 原本是在一张纸上画出了红黑树插入操作的所有情况的演变图示,但前两天将删除操作写到博客上,因此想来,索性就将插入操作也一并写上,以免日后图纸丢失,也方便大伙共同研究,学习。 红黑树的插入操作 1:节点命名约定 N表示新添加的节点。即:取 New 的首字母; P 表示父节点。即:取 Parent 的首字 阅读全文
posted @ 2016-05-07 14:03 Jacc.Kim 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 查阅了很多的资料,最终把红黑树的删除操作弄明白。为方便日后温习,也为那些正想弄明白但又苦苦明白不了该操作详细原理的同学查阅,特将其当笔记记录下来。下面内容是个人所理解的红黑树的删除操作,如果有不对的地方,欢迎各路大神指正。 红黑树的删除操作 1:节点命名约定 D表示要被删除的节点。即:取 Delet 阅读全文
posted @ 2016-05-05 09:36 Jacc.Kim 阅读(18385) 评论(30) 推荐(6) 编辑