GoF设计模式之行为型模式
conquer0715
追求卓越,成功会在不经意间追上你
展开
-
行为型模式之备忘录模式(Memento)
一、模式介绍 备忘录模式可以对一个对象的内部状态进行备份以在一个合适的时机恢复到这个状态,例如编辑器软件可以恢复到上次修改的操作。二、原理图三、示例代码public class Memento {String state1;String state2;public String getState1() {return state1;}p原创 2013-04-23 13:22:34 · 3510 阅读 · 0 评论 -
行为型模式之中介者模式、调停者模式(Mediator)
一、模式介绍 Mediator模式中文翻译为调停者模式,它的主要作用在于将有复杂依赖关系的类解耦和。调停者封装了一系列类的交互行为,它使得类和类之间的多对多交互变成了和类和调停者者之间多对一的交互,这种行为的封装使得类之间的依赖系更加集中化和易控化,使得类与类之间变得松耦合化。调停者模式就像一个中介,像一个交通枢纽等等,总之就是将各类的联系统一化,避免了因关系而与其它类的关系而使原创 2013-04-26 13:53:35 · 3624 阅读 · 0 评论 -
行为型模式之迭代器模式(Iterator)
一、模式介绍 迭代器模式又名游标模式,它使得一个集合对象可以在不暴露其内部表示的情况下被客户访问其包含对象,那么它是怎么做到的呢?它是通过实现了一组接口而做到的,而这组接口是开放给客户的,客户端只需使用该接口而无需知晓其实现的细节,因为封装的特性外界无法得知集合内部的表示那么实现集合迭代的具体细节就需要结合本身来完成。二、原理图三、示例代码//开放给客户的接口pu原创 2013-04-22 16:52:05 · 3510 阅读 · 0 评论 -
行为型模式之解释器模式(Interpreter)
一、模式介绍 Interpreter模式(解释器模式)属于行为模式,是一个普通编程工作中使用频率不高的模式,它定义一个解释器用来解释特定的文法表示,如果一种特定的业务类型经常被使用(如一连串复杂的运算或指令集),这个时候可以考虑使用解释器模式,它的作用在于对你预先定义下文法表示做出解释执行,利用解释器模式可以自己定义自己的运算方式等。二、原理图三、示例代码pu原创 2013-04-26 22:14:07 · 3775 阅读 · 0 评论 -
行为型模式之命令模式(Command)
一、模式介绍 命令模式的目的是将命令的发送者和命令的执行者松耦合,发送者不必需再关心命令的执行细节,执行者也必需关心命令的发送者,打比方说这种模式好像是可以用于把编程世界里方法的直接调用改为代理调用(不是很恰当但可以帮助理解命令模式)。命令模式中发送者对接受端是否接收、是否执行等不需知情。只是发送命令。二、原理图三、示例代码public class Receiver原创 2013-04-24 22:47:42 · 3462 阅读 · 0 评论 -
行为型模式之状态模式(State)
状态模式,将条件的判断从业务逻辑中分离出去。程序运行中所依赖的条件可视作程序的状态,程序的运行逻辑非常复杂,在不同的状态下需要有不同的表现,状态模式将程序“状态”(即程序运行条件)进行了抽象,这样,通过自由切换状态条件可以方便地得到不同的表现。我们在程序设计过程中,经常会涉及到在某些状态下进行特定的操作,一般我们会传入一个条件,然后对条件进行判断,如果是...则...,通常都会首先想到原创 2013-04-21 21:48:02 · 3511 阅读 · 0 评论 -
行为型模式之访问者模式(Visitor)
一、模式介绍 访问者模式将一个元素本身与对其的操作分离开来,它可以在元素本身不发生变化和不知情的条件下被不同的访问者访问应用到不同的场景中去从而实现出很多新的功能,由于元素和对其的操作的分离,访问者可以独立变化使用不同的方式对元素进行访问而不改变元素本身的结构表示,也就是说我们可以使用不同的访问者访问同样的对象而获得不同的效果。比如一台电脑,程序员回拿来开发程序,学生会用来学习,老师会用原创 2013-04-22 23:11:54 · 3417 阅读 · 0 评论 -
行为型模式之策略模式(Strategy)
策略模式对业务中的可替换部分进行了抽象,使得同一件事情可以使用不同的处理方式来完成。策略模式通过预先定义一些策略,主逻辑在处理过程中可以自由选择哪种策略来完成。使用策略模式,可以实现自由选择支付方式、自由选择计算方法、自由选择比较器等等,Java的比较器Comparator就是使用了策略模式,因此可以方便地切换不同的比较器进而完成不同的排序结果。对比“状态模式”,两者的原创 2013-04-02 23:37:11 · 3568 阅读 · 0 评论 -
行为型模式之观察者模式(Observer)
观察者模式描述的是事件的通知方式,可用于“订阅-分发”、“监听器”等场景,一个主题对象发生变化时通知所有的观察者进行相应的处理。JDK自身内置了观察者模式实现,可以直接使用JDK自身的观察者模式!场景:求职者可以向猎头注册登记,猎头在有工作的时候通知求职者。设计:示例代码:import java.util.ArrayList;import java.util.原创 2013-04-08 02:06:57 · 3439 阅读 · 0 评论 -
行为型模式之模板方法模式(Template Method)
一、模式介绍模板方法模式适用于总体业务流程相对固定不变而流程中各环节的具体实现有所不同需要既保证流程的正确性还要保证具体实现的个性化的场景的场景。模板方法模定义了模板方法负责控制总体业务流程的走向,定义的这个模板方法将流程中不变的部分提取出来,将变化的部分推迟到子类中实现,遵守了开闭原则(对扩展开放,对修改关闭),定义的模板方法一般为final的避免子类复写修改业务逻辑从而保证了业务逻辑只能由原创 2013-04-05 23:09:30 · 3716 阅读 · 0 评论 -
行为型模式之责任链模式(Chain of Responsibility)
一、模式介绍 责任链模式将请求的发送者与请求的处理者解耦和,使得发送者无从也无需得知请求的处理过程,它更重要的特征是使得多个处理者对象都有机会处理此请求,而且处理的结果是在编译器见不可预知的也就是动态是在运行期动态决定的,所以责任链的处理请求操作是灵活的。在JavaEE的规范里,配置的web.xml里的Filter就是一个典型的责任链模式,我们自定义的过滤器都要继承一个父过滤器,我们可以原创 2013-04-09 22:53:24 · 3669 阅读 · 0 评论