摘要:
状态模式 概述 状态模式: 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类 "状态模式" 是行为型设计模式的一种,状态模式中的行为是由状态来决定的,不同的状态下有不同的行为. 状态模式和策略模式相似,但是状态模式中的行为是平行的,不可替换的,策略模式中的行为是彼此独立的,可相 阅读全文
摘要:
中介者模式 概述 中介者模式( )又称为调解者模式或调停者模式,中介者是一中行为型模式,听名字大家应该都知道了起到了中间桥梁的作用, 在软件开发过程中,势必会碰到这样一种情况,多个类或多个子系统相互交互,而且交互很繁琐,导致每个类都必须知道他需要交互的类,这样它们的耦合会显得异常厉害。 如果有这么一 阅读全文
摘要:
责任链模式 概述 责任链模式: 将能够处理同一类请求的对象连成一条链,使这些对象都有机会处理请求,所提交的请求沿着链传递。从而避免请求的 发送者和接受者之间的耦合关系。链上的对象逐个判断是否有能力处理该请求,如果能则就处理,如果不能,则传给链上的下一个对象。 直到有一个对象处理它为止。 UML Ha 阅读全文
摘要:
模板方法模式 概述 模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。 比如定义一个操作中的算法的骨架,将步骤延 阅读全文
摘要:
命令模式 定义 将来自客户端的请求传入一个对象,从而使你可用不同的请求对客户进行参数化。用于“行为请求者”与“行为实现者”解耦,可实现二者之间的松耦合,以便适应变化。分离变化与不变的因素。 特点 1.命令模式的本质是对命令进行封装,将发出命令的责任和执行命令的责任分割开。 2.每一个命令都是一个操作 阅读全文
摘要:
解释器模式 概述 解释器模式是一种用得比较少的行为型模式.提供了一种解释语言的语法或表达式的方式. 通过定义一个表达式接口,解释一个特定的上下文。 其实这种模式就是定义编译原理中学习的文法的一种表示。 UML AbstractExpression: 抽象表达式,声明一个抽象的解释操作父类,定义一个抽 阅读全文
摘要:
参考 http://blog.csdn.net/wbwjx/article/details/52264207 观察者模式 概述 对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这个模式有一个非常重要的作用就是解耦,将被观察者和观察者之间的依赖降到最小. 阅读全文
摘要:
访问者模式 概述 "访问者模式" 是一种将数据操作与数据结构分离的模式 是23中设计模式中最复杂的一个,使用频率也不是很高,但一旦需要它的时候将变得非常有用. 软件系统中拥有一个由许多对象构成的,比较稳定的对象结构.这些对象的类都拥有一个 方法用来接收访问者对象的访问. 访问者是一个接口,拥有 方法 阅读全文
摘要:
参考 "23种设计模式系列" 前言 聚集 多个对象聚在一起形成的总体称之为 聚集(Aggregate ),聚集对象是能够包容一组对象的容器对象。聚集依赖于聚集结构的抽象化,具有复杂性和多样性,数组就是最基本的聚集,也是其他Java聚集对象的设计基础。 Java聚集(Collection)对象是实现了 阅读全文
摘要:
策略模式 概述 "策略模式(Strategy)" 是一种行为型模式, 好处是我们可以动态的改变对象的行为.针对一组算法或者策略,我们可以将其抽象出来,提供一个统一的接口,不同的算法或者策略有不同的实现类, 通过注入不同的对象实现策略的动态替换,提高扩展性和维护性. 定义 策略模式定义了一系列算法,并 阅读全文
摘要:
转自http://blog.csdn.net/o279642707/article/details/60767258 概述 备忘录(Memento)模式又称标记(Token)模式。GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该 阅读全文
摘要:
概述 组合模式: 将对象组合成树形结构以表示:部分 整体 的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 java中的 组合 是指:在A类里定义一个B类的引用,A拥有了B,叫 组合 。只是单纯的组合而已,而不是一种设计模式。 组合和组合模式不是一回事! 基本上见到的树形结构都使用 阅读全文
摘要:
装饰者模式 概述 装饰模式(decorator): 表示动态的给一个对象添加一些新的功能 (利用子类继承父类也可以实现),但是比生成子类方式更灵活。 也叫装饰者模式或者装饰器模式。在理解装饰者模式最重要的就是理解组合和委托的两种思想,我们平时遇到的装饰者模式有IO集合、Android中的view等。 阅读全文
摘要:
概述 享元模式(FlyWeight): 运用共享技术有效的支持大量细粒度对象的重用。 享元对象能做到共享的关键就是区分了 内部状态 和 外部状态 。 内部状态:可以共享,不会随环境变化而变化 外部状态:不可以共享,会随环境变化而变化 使用场景 系统中存在大量的相似对象 细粒度的对象都具备较接近的外部 阅读全文
摘要:
外观模式 概述 提供一个简易的接口,来访问子系统中的一群接口。外观定义了一个高层接口,让子系统容易使用。外观模式是我们封装api的常用手段.外观类中提供了客户端请求的简化方法和对现有系统类方法的委托调用,外观模式是一个结构型设计模式. UML : 系统对外的统一接口 ,`System SystemC 阅读全文
摘要:
适配器模式 概述 适配器模式定义 :将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 生活中的适配 如果你自己接过水管或者自己接过洗衣机的水管头,你肯定有过类似的体验,无论你怎么接,它都会漏水,然后去店里一问,就知道有水管转换接头这么个东西。他可以让两个粗细不同对 阅读全文
摘要:
桥接模式 概述 桥接模式:Decouple an abstraction from its implementation so that the two can vary independently.(将抽象和实现解耦,使得两者可以独立地变化。而不会直接影响到其他部分。 UML Abstractio 阅读全文
摘要:
概述 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象. 代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。 其实就是代理就是做到类似转发的功能,针对不同代理,转发的具体实现不同。这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或 阅读全文
摘要:
概述 通过复制一个已存在对象来生成一个新对象,被复制的对象称为原型; UML • Prototype(原型) : 声明一个克隆自身的接口。 • ConcretePrototype(具体的原型) :实现一个克隆自身的操作。 • Client(场景) 让一个原型克隆自身从而创建一个新的对象。 补充说明 阅读全文
摘要:
概述 建造者模式: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示] 假如一个对象的构建很复杂,需要很多步骤。则可以使用建造者模式,将其构建对象和组装成一个对象这两步给分开来。构建部分为(builder)和组织部分(director),实现了 阅读全文