
设计模式
文章平均质量分 84
BUS375
不积跬步无以至千里,不积小流无以成江海!
展开
-
c++设计模式之装饰模式
装饰模式:什么是装饰器模式?动态地给一个对象添加一些额外的工作职责,就增加功能来说,装饰器模式比继承的子类更灵活。装饰模式的类图#include #include using namespace std;class Car{public: virtual void showcar()=0;};class RunCar:public Car{public: void原创 2016-07-23 21:35:13 · 396 阅读 · 0 评论 -
c++设计模式之状态模式
状态模式state pattern定义:允许通过改变对象的内部状态而改变对象的行为,这个对象表现得就好像修改了它的类一样。举例:有限状态自动机(FSM)是一个典型的状态不同,对输入有不同的响应(状态转移)。通常,我们实现这类系统会使用很多的Switch/case语句,但是这种实现方式至少有以下两个问题:1)当状态树木很多时,维护一组大的Switch/Case语句将是一个异常困难原创 2016-08-02 20:35:57 · 421 阅读 · 0 评论 -
c++设计模式之外观模式
外观模式 (Facade Pattern)-j结构型模式这个外观类为子系统提供一个共同的对外接口, 客户(Clients)对象通过一个外观接口读写子系统中各接口的数据资源。意图:外观模式(Facade)为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。适用性:1.设计初期阶段,应该有意识的将不同层分离,层与层之间建立外观模式。2.原创 2016-07-25 21:08:59 · 392 阅读 · 0 评论 -
c++设计模式之单例模式
单例模式Singleton 单例模式也一种对象创建型模式,使用单例模式可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。GoF对单例模式的定义:保证一个类只有一个实例存在,同时提供能对该类实例加以访问的全局访问方法。单例模式结构图:单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例模式,一种是懒汉式单例模式。饿汉式单例模式在单原创 2016-08-03 20:42:28 · 410 阅读 · 0 评论 -
c++设计模式之解释器模式
解释器模式Interpreter Pattern定义:一些应用提供了内建(Build-In)的脚本或者宏语言来让用户可以定义他们能够在系统中进行的操作。Interpreter模式的目的就是使用一个解释器为用户提供一个一门定义语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子。兑现代码:#include using namespace std;//PlusExpre原创 2016-08-02 20:44:32 · 495 阅读 · 0 评论 -
c++设计模式之迭代器模式
迭代器模式Iterator Pattern定义:迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。适用场景:1)访问一个聚合对象的内容而无需暴露它的内部表示,2)支持对聚合对象的多种遍历,3)为遍历不同的聚合结构提供一个统一的接口。迭代器模式的类结构图:兑现代码:#include using na原创 2016-08-03 11:21:44 · 444 阅读 · 0 评论 -
c++设计模式之命令模式
#include #include "list"using namespace std;class Doctor{public: void treat_eye() { cout<<"医生看眼病"<<endl; } void treat_nose() { cout<<"医生看鼻子"<<endl; }};class Command{public: virtua原创 2016-07-27 21:34:10 · 372 阅读 · 0 评论 -
类与类间的关系
博文转载自http://www.cnblogs.com/liuling/archive/2013/05/03/classrelation.html一、继承关系 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。在Java中继承关系通过关键字extends明确标识,在设计时一般没有争议性。在UML类图设计中,转载 2016-07-24 15:57:38 · 278 阅读 · 0 评论 -
设计模式的7原则及23种设计模式概要
一、设计模式的原则1.开放封闭原则2.依赖倒置原则3.迪米特法则4.单一职责原则5.接口隔离原则6.有限原则(有先使用组合而不是继承)7.里氏替换原则二、23种设计模式1.创建型模式:用来处理对象的创建过程(1)单例模式(Single Pattern)(2)工厂模式(Factory Pattern)(3)抽象工厂模式(Factory Pattern)转载 2016-07-27 18:25:21 · 760 阅读 · 0 评论 -
c++设计模式之原型模式
原型模式Prototype Pattern定义:原型模式一种对象创建型模式,她采用复制对象原型的方法来创建对象的实例。使用原型模式创建的实例,具有与原型一样的数据。注意:1)由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。2)目标对象是原型对象的一个克隆。也就说,通过原型模式创建的对象,不仅仅与原型对象具体相同的结构,还有原型对象具有相同的值。3)根据对原创 2016-08-05 20:30:06 · 355 阅读 · 0 评论 -
c++设计模式之备忘录模式
备忘录模式Memento Pattern定义:备忘录模式,是行为模式之一,它的作用是保存对象的内部状态,并在需要的时候(undo/rollback)恢复到以前的状态。备忘录模式的类结构图:备忘录模式的角色:1.Originator(发起者):负责创建一个备忘录Memento,用以记录当前时刻自身的内部状态,并可使用备忘录恢复内部状态。Originator可以根据需要决定原创 2016-08-01 17:27:43 · 401 阅读 · 0 评论 -
c++设计模式之组合模式
组合模式(Composite Pattern)-结构型意图:组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。举例:组合模式让你可以优化处理递归或分级数据结构。有许多关于分级数据结构的例子,使得组合模式非常有用武之地。例如计算机的文件系统,文件系统由目录和文件组成。每个目录下可以有文件或是目录。目录的内容可以是文原创 2016-07-25 19:09:39 · 1827 阅读 · 0 评论 -
c++设计模式之享元模式
定义:享元模式(FlyWeight),运用共享技术有效的支持大量细粒度的对象。享元模式结构图:#include #include #include "map"using namespace std;class Person{public: Person(string name,int age) { this->m_name=name; this->m_ag原创 2016-07-26 20:44:55 · 527 阅读 · 0 评论 -
c++设计模式之模板模式
模版模式定义:又叫模板方法模式,在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情冴下,重新定 义算法中的某些步骤。举例:例如,生产汽车的工厂,生产一辆车,一般都包含造车头、造车身、造车尾等几个步骤,通常情况下这几个步骤的次序是:造车头 -->造车身-->造车尾。在这三个步骤中,无论造什么车,汽车,公交车等等,可能不同的车造车原创 2016-07-27 20:11:25 · 345 阅读 · 0 评论 -
c++设计模式之中介者模式
中介者模式定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而降低耦合,而且可以独立地改变它们之间的交互。类型:行为类模式中介者模式的类结构图:角色:Mediator抽象中介者:中介者类的抽象父类。ConcreteMediator:具体的中介者类Colleague:关联类的抽象父类Con原创 2016-08-01 15:50:28 · 476 阅读 · 0 评论 -
c++设计模式之观察者模式
观察者模式 Observer的定义:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。观察者模式类结构图:观察者模式的组成:Subject抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加原创 2016-08-01 16:24:39 · 321 阅读 · 0 评论 -
c++设计模式之桥接模式
例子引入: 拿汽车在路上行驶的来说。既有小汽车又有公共汽车,它们都不但能在市区中的公路上行驶,也能在高速公路上行驶。这你会发现,对于交通工具(汽车)有不同的类型,它们所行驶的环境(路)也有不同类型,在软件系统中就要适应两个方面(不同车型,不同道路)的变化,怎样实现才能应对这种变化呢? 再次举一个例子,汽车和发动机,发动机有很多种4400cc,4500cc等等,汽车也有原创 2016-07-24 15:04:35 · 672 阅读 · 0 评论 -
c++设计模式之责任链模式
定义: 职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。它是一种对象行为型模式。举例:比如政府部门的某项工作,县政府现完成自己能处理的部分,不能处理的部分交给市政府,市政府在先完成自己能完成的部分,不原创 2016-07-28 20:48:43 · 486 阅读 · 0 评论 -
c++设计模式之适配器模式
适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。适配器模式类图:#include #include using namespace std;class Current18v{public: virtual void useCurrent原创 2016-07-24 09:19:30 · 391 阅读 · 0 评论 -
UML类图实例
转载自http://blog.youkuaiyun.com/xhf55555/article/details/6896316/ 邢海芳的博客先是复习一下UML中九种图的理解:http://xhf123456789plain.blog.163.com/blog/static/172880482201192222144421/画用例图:http://xhf123456789plain.blog.1转载 2016-08-03 14:17:56 · 1052 阅读 · 0 评论