设计模式
文章平均质量分 90
jiht594
这个作者很懒,什么都没留下…
展开
-
策略模式
策略模式(Strategy)目的是,定义一系列算法,将每个算法封装起来,并让他们可以相互替换。策略模式让算法独立于使用它的客户而变化。 状态图为:我们使用策略模式为多个对象封装不同的排序算法,允许客户动态改变不同的排序策略。实现代码://SortStrategy.hclass SortStrategy{public: SortStrategy();转载 2012-06-08 15:34:12 · 421 阅读 · 0 评论 -
状态模式
#include "stdafx.h"#include using namespace std;class Work;class State{public: State(){}; virtual ~State(){}; virtual void WriteProgram(Work *w) = 0; int getName(){ return m_name; } v原创 2013-04-12 17:01:39 · 708 阅读 · 0 评论 -
建造者模式
模板方法模式VS建造者模式分类: 设计模式 2012-12-23 22:30 222人阅读 评论(0)收藏 举报建造者模式模板方法模式设计模式今天再来两个设计模式的对决,模板方法模式VS建造者模式。首先,看看模板方法模式的定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些转载 2013-04-12 16:23:08 · 627 阅读 · 0 评论 -
设计模式C++实现(6)——建造者模式
原帖http://blog.csdn.net/wuzhekai1985/article/details/6667467软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解转载 2013-04-10 16:59:23 · 587 阅读 · 0 评论 -
外观模式
转载 2013-04-10 16:44:23 · 550 阅读 · 0 评论 -
原型模式
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype原型模式是一种创建型设计模式,Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。解决什么问题:它主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的转载 2013-04-09 16:09:34 · 637 阅读 · 0 评论 -
代理模式
代理模式目录简介优点模式结构代码示例展开简介优点模式结构代码示例展开编辑本段简介即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。编辑本段优点(1).职责清晰真实的角色就转载 2013-04-09 15:55:53 · 701 阅读 · 0 评论 -
装饰模式
扩展原有类,一个旧类做参数,一个新类做返回值。返回的新类扩展了旧类,即增加了新功能。概述JAVA23种设计模式之一,英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。编辑本段装饰模式的特点(1) 装饰对象和真实对象有相同的接口。转载 2013-04-09 15:45:24 · 632 阅读 · 0 评论 -
模板方法模式
转自http://blog.csdn.net/zhanglibin_1222/article/details/5124405模板方法模式——在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。下面,是大家很熟悉的一段代码——《Head First 设计模式》中第8章模板方法模式中星巴兹咖啡因饮转载 2012-06-11 17:13:15 · 488 阅读 · 0 评论 -
适配器模式
类适配器模式对象适配器模式适配器模式(Adapter)把一个类的接口转换(适配)为另一个接口,从而在不改变原有代码的基础上利用原代码。它的别名wrapper更清晰地说明了它的实现结构:包装了原有对象,再给出一个新的接口。GOOD:双方都不适合修改的时候,可以考虑使用适配器转载 2012-06-10 10:49:28 · 418 阅读 · 0 评论 -
单例模式
C++实现单例模式单例模式:Singleton 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。我实现了一个简单的单例类,欢迎吐槽。#includeusing namespace std;class Singleton{public: static Singl转载 2012-06-10 11:18:52 · 417 阅读 · 0 评论 -
简单工厂模式
一.简单工厂模式又称静态工厂方法模式(Static Factory Method),它不是Gof 所讲的23种设计模式之一,但是它却是我们在编码过程中经常使用的方法之一。 1.静态工厂方法统一管理对象的创建。静态工厂方法通过传入的参数判断决定创建哪一个产品的实例,封装了对象的创建,客户端只管消费,实现了对责任(模块)的分割。2.静态工厂方法推迟了产品的实例化。转载 2012-06-08 16:57:22 · 521 阅读 · 0 评论 -
组合模式
组合模式(Composite)的定义为:组合多个对象形成树形结构,以表示整体-部分的结构层次。组合模式对单个对象和组合对象的使用具有一致性。其结构图如下: 例如一个新闻的树形菜单,它包含很多原始菜单(如国内、国际),以及由其子菜单组成的组合节点(如国内新闻下的时事、社会等),结构图如下://Menu.h#include class Menu {public转载 2012-06-08 13:04:45 · 513 阅读 · 0 评论 -
工厂方法模式
工厂方法模式是对简单工厂模式的改进。首先看看简单工厂模式的缺点。软件是之所以区别于程序,是因为它可以被人们使用,并能间接创造效益。需求是软件开发的核心,忽视用户的需求,软件本身就没有存在的价值。假如Nokia又新开发了一款新手机N99,对于采用简单工厂模式设计的系统,我们的做法是:1.新增一个CN99类继承自CNokia抽象类,这个符合OCP原则。注:OCP:Open-Clos转载 2012-06-08 17:29:51 · 429 阅读 · 0 评论 -
耦合性简单解释
解耦的目的就是达到, A模块调用B时, 不需要知道B的内部实现耦合等级: 高耦合->低耦合红色为常见的耦合,->后面基本就是这篇文章的3条总结.如果能明白就不需要继续看了内容耦合共用耦合common coupling->尽量不要全局变量, --->>各个模块不依赖全局变量外部耦合控制耦合control coupling ->不要用A模块的flag去控制B模块. --->>A不需要知道B的结构特征耦合stamp coupling or data struct coupling->(如果模块只用到原创 2015-02-07 18:38:41 · 5815 阅读 · 0 评论