设计模式
michael_xh
这个作者很懒,什么都没留下…
展开
-
C++设计模式之模板方法模式
TemplateMethod Pattern(模版方法模式)意图定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。是一种比较简单的设计模式,但却是代码复用的一项基本技术,在类库中尤其重要。使用的也比较普...原创 2020-03-02 11:27:38 · 223 阅读 · 0 评论 -
C++设计模式之建造者模式
解决的问题:我创建的这个对象比较复杂,且该对象里面的成员函数用不同的实现来表示不同的实例,换句话说就是同样的对象构建过程可以有不同的表示。比如我那天去吃过桥米线,他们有不同的套餐,套餐里包含的种类是一样的,都有一碗米线,一份凉菜,一杯饮料。但是不同的套餐里这3样又都不是全部一样的。此时我们就可以用建造者模式。实现要点:1.建造者模式主要用于“分步骤构建一个复杂的对象”,在这其中“每个步骤”是...原创 2020-03-01 21:01:28 · 267 阅读 · 0 评论 -
C++设计模式之抽象工厂模式
意图提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。解决的问题:在系统里a,b,c三个组件必须同时使用,但是a的同类 a1和a2这三种方法有共同特点但是是互斥的,b,b1,b2和c,c1,c2和a/a1/a2是一样的。就比如说创建在不同操作系统的视窗环境下都能够运行的系统时,Unix下面有unixButton和 unixText,Win下面也有winButton和winT...原创 2020-03-01 20:20:52 · 104 阅读 · 0 评论 -
C++设计模式之工厂方法模式
意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。适用性• 当一个类不知道它所必须创建的对象的类的时候。• 当一个类希望由它的子类来指定它所创建的对象的时候。• 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。结构参与者:• Product(抽象产品)—...原创 2020-03-01 19:10:59 · 145 阅读 · 0 评论 -
C++设计模式之简单工厂模式
简单工厂模式按照设计模式类型分的话是属于创建型模式,他是工厂模式中最简单的一种,他不属于GoF 23中设计模式之一,但是是简单实用的。他是有一个工厂对象来决定创建哪一种对象的实例。类图和调用方法:例子:优点:外界只要传入类的名字或者识别符即可,不需要关心具体创建过程,只顾“消费”就可以了。各有各的指责和权力,分工明确,利于整个软件架构优化。简单,结合单例模式更加方便和节省资源。缺点:...原创 2020-03-01 18:57:51 · 110 阅读 · 0 评论 -
C++设计模式之原型模式
实现要点:1.使用原型管理器,体现在一个系统中原型数目不固定时,可以动态的创建和销毁。2.实现克隆操作,在.NET中可以使用Object类的MemberwiseClone()方法来实现对象的浅表拷贝或通过序列化的方式来实现深拷贝,在C++中就是拷贝构造函数的作用。3.Prototype模式同样用于隔离类对象的使用者和具体类型(易变类)之间的耦合关系,它同样要求这些“易变类”拥有稳定的接口。...原创 2020-03-01 16:56:30 · 321 阅读 · 0 评论 -
C++设计模式之观察者模式
观察者模式(Observer):定义了对象间的一种一对多的关系,当一个对象改变时,所有依赖他的对象都得到通知并自动更新。动机:将一个系统划分成一系列相互协作的类有一个常用的副作用:需要维护相关对象间的一致性,我们不希望为了维护一致而是的各类紧密耦合,因为主要降低了系统的可复用性,因此利用观察者模式可以描述建立一种各层次之间的关系的模型,当被依赖的某个对象的状态发生变更时,所有依赖的对象的状态都...原创 2020-03-01 15:55:25 · 183 阅读 · 0 评论