
设计模式
文章平均质量分 62
寻找风的味道
这个作者很懒,什么都没留下…
展开
-
单例模式
单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。 单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做到这一点转载 2013-07-02 00:22:58 · 556 阅读 · 0 评论 -
原型模式
—————————————————————————————————————— 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。意图:用原型实例指转载 2013-07-01 23:41:59 · 890 阅读 · 0 评论 -
建造者模式
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使的同样的构建过程可以创建不同的表示。建造者模式的优点是:使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以如要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。解决问题:主要用于创建一些复杂的对象,这些对象内部构建间的建造顺序通常是稳定的,但是对象内部的构建通常面临着复杂的变化转载 2013-07-02 16:52:35 · 914 阅读 · 0 评论 -
简单工厂、工厂、抽象工厂
简单工厂模式:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式,属于类的创建型模式。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。意图:提供一个类,由它负责根据一定的条件创建某一具体类的实例 角色及其职责: 工厂(Creator)角色:简单工厂模式的核心,转载 2013-07-01 23:17:54 · 832 阅读 · 0 评论 -
观察者模式
观察者模式: 定义了对象间一对多的联系。当一个对象的状态发生变化时,所有与它有联系的观察者对象都会得到通知。观察者模式将被观察的目标和观察者解耦,一个目标可以有任意多的观察者,观察者也可以观察任意多的目标,构成复杂的联系,而每个观察者都不知道其他观察者的存在。意图: 被观察者属性发生变化,各个观察者相应改变。角色及职责: 抽象被观察者(Subj原创 2013-07-03 17:29:20 · 899 阅读 · 0 评论 -
模版方法模式
模版方法模式:算法当中步骤是确定的,但是每一个步骤实现起来可能方法不同。角色及其职责: 2.1 抽象类(AbstractClass):定义了算法的骨架,提供算法每一步骤的函数接口。 2.2 具体类(ConcreteClass):实现算法的每一步骤。 示例代码:// 模版模式// 功能基类提供 流程函数 以及 流程步骤的接口// 子类完成流程步骤class Temp原创 2013-07-02 22:17:07 · 644 阅读 · 0 评论 -
设计模式概要目录
创建型模式 简单工厂模式、工厂模式、抽象工厂模式 原型模式 建造者模式(生产者模式) 单例模式转载 2013-07-02 17:20:53 · 612 阅读 · 0 评论 -
组合模式
组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。意图:解决整合与部分可以被一致对待问题。角色及其职责: Component类:组合中的对象声明接口,在适当情况下,实现所有类共有接口的行为。声明一个接口用于访问和管理Component的子部件Leaf类:叶节点对象,叶节点没有子节点。由于叶节点不能增加分支和树叶,所以原创 2013-07-03 00:04:22 · 755 阅读 · 0 评论 -
策略模式
策略模式: 它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。意图: 同一函数接口实现不同的算法。角色及职责: 抽象策略类(Strategy):提供这一系列算法的统一函数接口。 具体策略类(Concrete Strategy):根据需求实现的不同算法。原创 2013-07-03 22:12:52 · 771 阅读 · 0 评论