- 博客(14)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 状态模式
当一个对象可能有N中状态,而且每种状态下对象的行为都不一样,同时状态间的关系较为复杂时,使用状态模式。状态模式是针对此对象每种状态定义一个类,每个类中都有此对象的指针,在每个类中处理和状态相关的动作(函数)。此对象包含这些这些状态类的指针族,同时有一个表示当前状态的指针,同时变化这个指针的值来修改当前状态对应的动作。在非必须使用状态模式的情况下,不要使用,这个实现类太多,同时代码阅读性
2015-08-27 15:38:11 329
原创 访问者模式
访问者模式比较绕。她主要有两个东西,一个是元素,一个是访问者。他们的关系时,元素接受访问者,访问者访问元素。在元素接受访问者时,将访问者传递给元素。在这个函数中,访问者访问这个元素,这时将这个元素传递给访问者。一般情况下不需要用到访问者模式。还没理解什么情况下需要用到这个模式。
2015-08-27 15:19:10 371
原创 职责链模式
当一件事情需要一级一级的向下传递时,可以用职责链的方式。又分其它几个情况1、在这个职责链中每个节点都有相应操作,这样用职责链是最好的选择2、在这个职责链中只有最后一个才做相应的处理,前面的节点都是起到传递和搜寻最后一个节点的作用。则此时,可以用职责链也可以用表驱动来实现。职责链模式是将我们需要用户去一级一级的寻找处理者,变为用户找到一个处理者,然后这个处理者处理后由这个处理
2015-08-27 14:28:47 329
原创 观察者模式
当存在一对多的关系时,我们设计一个观察者,用来处理一个变化引起的相关变化动作。设计一个观察者,观察者维护一系列对象族,这些对象族都是由相应动作需要做出变化者自己注册的。当一个变化发生时,会通知观察者这个变化,然后观察者会遍历所有对象族,通知相应对象
2015-08-27 11:31:57 266
原创 装饰模式
装饰模式对于一个已有的类,需要对其增加一些小的功能属性,同时这些功能属性和这个类本身关联性不是很强,这时使用装饰模式而不使用继承。装饰模式即提供一个新类,这个新类由被装饰的类组合而成(被装饰类指针),同时增加装饰功能。
2015-08-27 11:20:54 266
原创 组合模式
当构建层次结构时,比如像树时。每一个节点都可以由简单节点构成,而当前这个节点又是上一个节点的简单节点。我们不想要区分这些简单节点和复杂节点。我们可以定义一个接口类,这个接口类中包括了要使用的共有接口,然后不论简单还是复杂节点都继承这个类。如此我们以后再使用和遍历这个树时,对待每个节点可以直接向对待这个接口类一样,不必要去区分不同的节点。
2015-08-27 10:54:59 286
原创 桥接模式
当一个对象受多个因素变化影响时,可以将这些因素抽象出来(也可以留一个作为主类)。对每个因素抽象一个抽象类,然后在一个主类中,对每个抽象类拥有一个指针。通过这个指针来变化没个因素。比如,一支笔(CPen)有尺寸和颜色两个因素,我们可以把颜色抽象出来成(CColor),然后在CPen中有一个CColor的指针pColor,这样当颜色因素变动时,我们只需要变化pColor就可以了。本质上是,
2015-08-27 10:34:17 334
原创 Adapter
类适配:适配类去继承要适配的类,提供目标接口函数,在目标接口函数调用现有函数。就是对要适配的类进行一次封装对象适配:适配类有一个要适配类对象,提供目标接口函数,在目标接口函数通过适配对象调用其现有函数。就是对其一次组合封装。适配是通常是对几个类的现在有函数组合使用。
2015-08-27 09:52:08 320
原创 模板模式
又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定义算法中的某些步骤。在一个方法中定义一个算法的骨架:在父类中提取所有子类的公共部分,而这些公共部分中的某一个步骤在子类中不一样时,想这部分抽取成一个虚函数。而将一些步骤延迟到子类中:上面提取的虚函数在子类中具体实现。
2015-08-26 16:41:39 296
原创 Builder
主要有两部分组成Builder:提供各个小组件的生产方法Director:用Builder提供的组件安装一定的组装逻辑,组装成产品
2015-08-26 15:40:49 303
原创 生成模式
生成模式:Factory,着重于生产一系列产品,这些产品都有相同的功能,但是每个功能的做法和具体实现不一样。Builder,着重于生产一系列产品,这些产品都可以由“一堆零件”中的部分零件组合而成。
2015-08-26 15:23:19 529
原创 工厂模式
述求:我要使用一个东西:1、我只需要关心 1.1我从哪里拿到它 1.2我怎么使用它2、其它诸如怎么生产的,我使用时它内部怎样工作的我都不关心实现我要使用一个东西:1、我需要看到 1.1一个生产工厂,有一个生产次东西的接口 1.2一个接口类,里面有我要使用的每个方法函数2、具体怎么生产放到子类工厂实现,使用东
2015-08-26 11:22:28 308
CD导入,Mac、Win、Linux平台
2014-05-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人