设计模式C++代码实现
wwwdongzi
这个作者很懒,什么都没留下…
展开
-
模板方法模式
当我们要完成在某一细节层次上一致的一个过程或一系列步骤,但在其个别步骤的一个更详细层次上实现不同时,可以考虑使用模板方法模式。 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变算法的结构即可重定义算法的某些特定步骤。 AbstractClass是一个抽象类,其实就是一个抽象模板,定义并实现了一个模板方法,这个模板方法一般一个具原创 2014-05-17 16:58:50 · 774 阅读 · 0 评论 -
策略模式
作用:策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到客户的使用。 策略模式就是用来封装算法的,但是在实践中我们发现,可以用他来封装任何类型的规则,只要在分析过程中听到在不同的时间应用不同的业务规则,就可以考虑使用策略模式来应对这种变化。 这里将算法的抽象接口封装在一个类中(Context),再通过委托的方式将具体的算法实现交给St原创 2014-05-25 19:56:27 · 583 阅读 · 0 评论 -
命令模式
命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 Command类,用来声明执行操作的接口。 ConcreteCommand类,将一个接受者对象绑定于一个动作,调用接受者相应的操作,以实现Execute。 Invoker类,要求该命令执行这个请求。原创 2014-05-26 17:34:30 · 818 阅读 · 0 评论 -
中介者模式
中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 ConcreteMediator是具体中介者对象,实现抽象类的方法,它需要知道所有具体同事类,并从具体同事接受消息,向具体同事对象发出命令。 中介者模式的优缺点: 中介者的出现减少了各个对象之间的耦合性,使得可以独立的改变和复用。它使得各原创 2014-05-28 21:39:57 · 590 阅读 · 0 评论 -
观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己。 Subject类,它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任意数量的观察者。抽象提供一个接口,可以增加和删除观察者对象。 ConcreteSubject类,具体通知者,将有关状态存入具体观察者对象;在具体原创 2014-05-24 10:47:13 · 732 阅读 · 0 评论 -
Prototype原型模式
Prototype原型模式。用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式就是用一个对象来创建另一个相同的对象而无需知道创建的具体细节。而且大大提高了创建的效率。优点主要是这两个: 屏蔽创建的具体细节,如参数等。创建的效率高。因为不必调用构造函数等。 原型模式也是一种创建型模式,跟建造者模式,工厂模式系类一样,不原创 2014-05-22 17:50:54 · 789 阅读 · 0 评论