DesignPatterns
dmcler
这个作者很懒,什么都没留下…
展开
-
结构型模式之二——桥接模式
模式定义桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型。模式结构模式结构图如下所示: 1.Abstraction 用于定义抽象类的接口,它一般是抽象类而不是接口,其中定义了一个Implementor(实现抽象类)类型的对象并可以维护该对象,它与Implementor之间具有关联关系,它可以包含抽象的业务方法,还可以包含具体的业务原创 2015-10-17 21:26:35 · 603 阅读 · 0 评论 -
创建型模式之三——抽象工厂模式
模式动机在工厂方法模式中具体工厂负责生成具体的产品,每一个具体产品对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或一组重载的工厂方法。但是有的时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象,如一个电器设备工厂,它可以生产电视机、电冰箱、空调等设备,而不只是生产某种类型的电器。为了更清晰地理解抽象工厂模式,需要引入两个概念:产品等级结构:产品等级结原创 2015-10-09 12:06:14 · 2882 阅读 · 0 评论 -
行为型模式之一——职责链模式
模式定义职责链模式(Chain of Responsibility Pattern):避免请求发送者和接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。它是一种对象行为型模式。模式结构职责链模式结构图如下所示: Handler 抽象处理者定义了一个处理请求的接口,它一般设计为抽象类,由于不同的具体处理者处理请求的方式不同,因此在其中原创 2015-10-27 18:51:31 · 2379 阅读 · 1 评论 -
创建型模式之五——原型模式
模式定义原型模式(Prototype Pattern):原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无须知道任何创建的细节。原型模式的基本工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象复制原型来实现创建过程。模式结构 1.Prototype 抽象原型类是定原创 2015-10-13 11:55:27 · 572 阅读 · 0 评论 -
行为型模式简介
行为型模式(Behavioral Pattern)关注系统中对象之间的相互交互,研究系统在运行时对象之间的相互通信与协作,进一步明确对象的职责。行为型模式是对不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。行为型模式分为类行为型模式和对象行为型模式: (1)类行为型模式:类的行为型模式使用继承关系在几个类之间分配行为,类行为型模式主要通过多原创 2015-10-27 16:50:36 · 1785 阅读 · 0 评论 -
行为型模式之二——命令模式
模式定义命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式。模式结构命令模式的结构图如下所示: Command 抽象命令类一般是一个接口,在其中声明了用于执行请求的excute()等方法,通过这些方法可以调用请求接收者的相关操作。ConcreteComma原创 2015-10-29 12:34:33 · 667 阅读 · 0 评论 -
创建型模式之六——单例模式
模式定义单例模式(Singleton Pattern):单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是一种对象创建型模式。模式结构 单例模式只包含一个Singleton(单例角色);在单例类的内部实现只生成一原创 2015-10-14 13:08:27 · 2221 阅读 · 0 评论 -
行为型模式之三——迭代器模式
模式定义迭代器模式(Iterator Pattern):提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示。迭代器模式是一种对象行为型模式。模式结构迭代器模式结构图如下所示: Iterator 抽象迭代器定义了访问和遍历元素的接口,一般声明如下方法:用于获取第一个元素的first(),用于访问下一个元素的next(),用于判断是否还有下一个元素的hasNext(),用于获取当前元素的curr原创 2015-10-29 17:12:40 · 2818 阅读 · 0 评论 -
结构型模式简介
结构型模式(Structural Pattern)描述如何将类或者对象组合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的,功能更强大的结构。结构型模式可以描述两种不同的东西:类和类的实例(即对象)。根据这一点,结构型模式可以分为类结构型模式和对象结构型模式。类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系;而对象结构型模式关原创 2015-10-15 16:04:28 · 1234 阅读 · 0 评论 -
结构型模式之一——适配器模式
模式定义适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。模式结构如下图为对象适配器模式结构图: 如下图为类适配器模式结构图: 1.Target 目标抽象类定义客户需要的特定领域的接口,可以是个抽象类或接口,也可以是具体类;原创 2015-10-15 17:30:28 · 1237 阅读 · 0 评论 -
行为型模式之五——备忘录模式
模式定义备忘录模式(Memento Pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象回复到原先保存的状态。这是一个对象行为型模式。模式结构备忘录模式结构图如下所示: Originator 原发器可以创建一个备忘录,并存储它的当前内部状态,也可以使用备忘录来恢复其内部状态。一般将需要保存内部状态的类设计为原发器。Memento 存储原创 2015-11-02 22:39:05 · 498 阅读 · 0 评论 -
行为型模式之十——访问者模式
模式定义访问者模式(Visitor Pattern):表示一个作用于某对象结构中各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。它是一种对象行为型模式。模式结构Visitor 抽象访问者为对象结构类中每一个具体元素类声明一个访问操作,从这个操作的名称或参数类型可以清楚知道需要访问的具体元素的类型,具体访问者需要实现这些操作方法,定义对这些元素的访问操作。Conc原创 2015-11-08 23:35:50 · 1605 阅读 · 0 评论 -
行为型模式之九——模板方法模式
模式定义模板方法模式(Template Method Pattern):定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种类行为型模式。模式结构模板方法模式结构类图如下: 1. AbstractClass 在抽象类中定义一系列基本操作,这些基本操作可以是具体的,也可以是抽象的,每一个基本操作对应算法原创 2015-11-07 22:22:51 · 1580 阅读 · 0 评论 -
创建型模式之二——工厂方法模式
模式定义工厂方法模式(Factory Method Pattern):工厂方法模式又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做得目的是将类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确原创 2015-10-08 19:47:47 · 662 阅读 · 1 评论 -
创建型模式之四——建造者模式
模式定义建造者模式(Builder Pattern):将一个复杂对象的创建与它的表述分离,使得同样的构造过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,他允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。模式结构 1.Builder 抽象建造者为创建一个产品Product对象的各个部件指定抽象接口,在该接口中一般原创 2015-10-12 12:54:38 · 487 阅读 · 0 评论 -
结构型模式之四——装饰模式
模式定义装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。其是一种对象结构模式。模式结构装饰模式结构如下图: Component 抽象构件定义了对象的接口,可以给这些对象动态增加职责(方法)。抽象构件是具体构件和抽象装饰的共同父类,它声明了在具体构件中实现的业务方法,它的引入可以使客户端以一致的方式处理未被装饰的原创 2015-10-19 14:30:48 · 470 阅读 · 0 评论 -
结构型模式之三——组合模式
模式定义组合模式(Composite Pattern):组合多个对象形成树形结构以表示“整体-部分”的结构层次。组合模式对单个对象和组合对象的使用具有一致性。属于对象结构模式,它将对象组织到树结构中,可以用来描述整体部分的关系。模式结构1.Component 抽象构件可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该角色中可以包含所有子类共有行为的声明和方法。在抽象构件中定义了访问及管理它原创 2015-10-19 12:41:40 · 880 阅读 · 0 评论 -
行为型模式之六——观察者模式
模式定义观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象得到通知并被自动更新。它是一种对象行为型模式。模式结构观察者模式结构图如下所示: Subject 目标又称为主题,它是指被观察的对象。在目标中定义了一个观察者集合,它可以存储任意数量的观察者对象,它提供一个接口来增加和删除观察者对象,同时它定义了通知方法notify原创 2015-11-04 16:45:46 · 2157 阅读 · 0 评论 -
行为型模式之七——策略模式
模式定义策略模式(Strategy Pattern):定义一系列算法,将每一个算法封装起来,并让它们可以互相替换。策略模式让算法独立于使用它的客户而变化。它是一种对象行为型模式。模式结构策略模式的模式结构图如下所示: Context 环境类是使用算法的角色,它在解决某个问题时可以采用多种策略。在环境类中维护一个对抽象策略类的引用实例,用于定义所采用的策略。Strategy 抽象策略类为所支持的原创 2015-11-05 17:32:46 · 1200 阅读 · 0 评论 -
结构型模式之四——外观模式
模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式是一种对象结构型模式。模式结构模式结构如下图所示: Facade 在客户端可以调用这个角色的方法,在外观角色中可以知道相关的子系统的功能和责任;在正常情况下,它将所有客户端发来的请求委原创 2015-10-20 13:54:02 · 670 阅读 · 0 评论 -
结构型模式之五——享元模式
模式定义享元模式(Flyweight Pattern):运用共享技术有效地支持大量细颗粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。享元模式是一种对象结构型模式。模式结构Flyweight 抽象享元类声明一个接口,通过它可以接受并作用于外部状态。在抽象享元类中定义了具体享元类公共的方法,这些方法可以向外界提供享元的内部数据(内部状态),同时也可以原创 2015-10-20 17:44:56 · 1206 阅读 · 0 评论 -
结构型模式之五——代理模式
模式定义代理模式(Proxy Pattern):给某个对象提供一个代理,并由代理对象控制对原对象的引用。它是一个对象结构型模式。模式结构代理模式结构图如下所示: Subject 抽象主题角色声明了真实主题和代理主题的共同接口,这样一来在任何使用真实主题的地方都可以使用代理主题。客户端需要针对抽象主题角色进行编程。Proxy 代理主题角色内部包含对真实主题的引用,从而可以在任何时候操作真实主题对原创 2015-10-21 16:18:43 · 999 阅读 · 0 评论 -
设计模式——7个设计原则
面向对象设计模式简介原创 2015-10-07 15:20:48 · 573 阅读 · 0 评论 -
创建型模式简介
创建型模式是GoF三大类设计模式中最容易理解的一类,创建型模式关注对象的创建过程,它将对象的创建和使用分离,在使用对象时无须知道对象的创建细节。使得相同的创建过程可以多次复用,且修改二者中的任一个对另一个几乎不造成任何影响或很少的影响。创建型模式主要包括以下6种,其中简单工厂模式不是GoF23种模式的一员: 1. 简单工厂模式(Simple Factory Pattern) 2. 工厂方法模式(原创 2015-10-07 15:46:28 · 707 阅读 · 0 评论 -
行为型模式之八——状态模式
模式定义状态模式(State Pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。状态模式是一种对象行为型模式。模式结构状态模式结构图如下所示: Context 环境类又称为上下文类,它是拥有状态的对象,但是由于其状态存在多样性且在不同状态下对象的行为有所不同,因此将状态独立出去形成单独的状态类。在环境类中维护一个抽象状态类State的实例,这个实例定义当前状原创 2015-11-07 21:43:40 · 1761 阅读 · 0 评论 -
创建型模式之一——简单工厂模式
在GoF列出的模式中并没有这一模式,但作为入门,可以了解一下。**模式定义** 简单工厂模式又称为静态工厂方法模式(Static Factory Method Pattern),它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同的实例。简单工厂模式专门定义一个类来负责其他类的实例,被创建的实例通常具有相同的父类。模式结构简单工厂模式结构图如下图所示,简单工厂模式结构比较简单,其核心是原创 2015-10-07 19:16:22 · 1069 阅读 · 0 评论