- 博客(6)
- 资源 (4)
- 收藏
- 关注
原创 设计模式-状态模式
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一些列类当中,可以把复杂的判断逻辑简化。 好处:将与特定状态相关的行为局部化,并且将不同状态的行为分离开来,将特定的状态相关的行为放入一个对象中,通过定义新的子类可以很容易的增加新的状态和转换。 当一个对象
2013-10-24 21:28:33 448
原创 设计模式-观察者模式(二)
观察者模式有一个不足,在于所有观察者必须派生于同一个基类,并且实现方法Update,而在实际应用中,往往不能满足这种条件,因为不同的观察者可能是毫不相关的两个类,并且可能不会提供Update方法,解决的方法就是使用事件委托。 C++中没有提供委托模型,需要自己构造,我们最容易想到的就是使用函数指针,而要取得类的成员函数指针,我们需要如下定义: class A { public: void
2013-10-19 22:18:00 405
原创 设计模式-观察者模式(一)
定义:观察者模式,又叫发布-订阅模式。他定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 使用:一、当一个对象改变需要同时改变其他对象,同时它不知道具体有多少对象有待改变时,考虑观察者模式。 二、当一个抽象模型有两个方面,其中一方面依赖另一方面,这时用观察者模式可以将这两者封
2013-10-18 22:28:56 504
原创 设计模式-建造者模式
建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它主要适用于创建一些复杂的对象,这些对象内部构造间的构造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。建造者模式是当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方法时适用的设计模式。 UML图如下: 相关类代码如下: // Builder.cpp : Define
2013-10-17 21:53:21 425
原创 设计模式-外观模式
外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这一接口使得这一子系统更加容易使用。 使用:首先,在设计初期,应有意识的将两个不同的层分离,在层与层之间建立外观Facade。 其次,在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加一个外观Facade可以提供一个简单的接口,减少他们之间的依赖。 第三,在
2013-10-15 21:32:49 445
原创 设计模式-模板方法模式
模板方法模式定义:定义一个操作中的算法骨架,而把一些步骤延迟到子类中。模板方法模式可以让子类不改变一个算法的结构就可以改变算法的某些特定步骤。 说明:有时候,我们经常遇到由一些列步骤构成的过程需要执行,这个过程从高层看是相同的,但有些步骤的实现可能不同,这个时候可以考虑模板方法模式。 其结构图如下: 设计实例(抄试卷): #include using namespace
2013-10-11 21:14:32 343
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人