模板方法模式
摘要:基本概念 1.模板方法模式的概念模板方法模式,定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 什么是模板方法(Template method):父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现。 最大的好处:
阅读全文
posted @
2014-01-07 10:02
duanxz
阅读(831)
推荐(0)
mina中责任链模式的实现
摘要:一、mina的框架回顾 责任链模式在mina中有重要的作用,其中Filter机制就是基于责任链实现的。 从上图看到消息的接受从IoService层先经过Filter层过滤处理后最后交给IoHander,消息的发送则是反过来从IoHander层经过Filter层再到IoService层。 我们来想想这
阅读全文
posted @
2013-12-13 10:21
duanxz
阅读(1148)
推荐(0)
Java 设计模式 之 中介者模式(Mediator)
摘要:中介者的功能非常简单,就是封装对象之间的交互。如果一个对象的操作会引起其他相关对象的变化,或者是某个操作需要引起其他对象的后续或连带操作,而这个对象又不希望自己来处理这些关系,那么久可以找中介者,把所有麻烦扔给它,只要在需要的时候通知中介者,其他的就让中介者去处理就可以了。反过来,其他对象在操作时,可能会引起这个对象的变化,也可以这么做。最后对象之间就完全分离了,谁都不直接跟其他对象交互,那么相互之间的关系完全集中到中介者里面了,所有的对象都通过中介者进行通信,相互之间就不在有联系了,对象之间的耦合就松散了。● 标准的中介者模式①Mediator:中介者接口。在里面定义各个同事对象之间的交互对
阅读全文
posted @
2013-07-16 09:32
duanxz
阅读(703)
推荐(0)
单例---被废弃的DCL双重检查加锁
摘要:被废弃的单例的DCL双重检查加锁/* *单例模式 *单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。 *加同步锁的单例模式,适合在多线程中使用。 */ class Singleton{ private static Singleton instance; private Singleton(){}//构造函数为private,外类不能使用new来创建立此类的实例 public static Singleton getInstance(){//获得实例的唯一全局访问点 System.out.println("进入外...
阅读全文
posted @
2013-06-24 15:40
duanxz
阅读(3267)
推荐(1)
Interpreter(解释器)模式
摘要:一、什么是解释器模式Interpreter模式也叫解释器模式,是行为模式之一,它是一种特殊的设计模式,它建立一个解释器,对于特定的计算机程序设计语言,用来解释预先定义的文法。简单地说,Interpreter模式是一种简单的语法解释器构架。二、解释器模式应用场景当有一个语言需要解释执行,并且你可将该语言中的句子表示为一个抽象语法树时,可使用解释器模式。而当存在以下情况时该模式效果最好:该文法简单对于复杂的文法,文法的类层次变得庞大而无法管理。此时语法分析程序生成器这样的工具是更好的选择。它们无需构建抽象语法树即可解释表达式,这样可以节省空间而且还可能节省时间。效率不是一个关键问题,最高效的解释器
阅读全文
posted @
2013-02-22 15:38
duanxz
阅读(554)
推荐(0)
JDK自带的监听器模式
摘要:《观察者模式与监听模式》 《JDK自带的观察者模式》 《JDK自带的监听器模式》 《ApplicationEvent事件机制源码分析》 监听模式 当事件源对象上发生操作时,将会调用事件监听器的一个方法,并在调用该方法时把事件对象传递过去。 监听器模式中的3个角色: 事件源:具体的事件源,注册特定的监
阅读全文
posted @
2013-01-11 10:49
duanxz
阅读(11280)
推荐(0)
JDK自带的观察者模式
摘要:《观察者模式与监听模式》 《JDK自带的观察者模式》 《JDK自带的监听器模式》 《ApplicationEvent事件机制源码分析》 1、概述 观察者模式又称为发布/订阅(Publish/Subscribe)模式 observer模式简介 observer模型,又被称作listener模式。这里统
阅读全文
posted @
2013-01-09 16:19
duanxz
阅读(3539)
推荐(0)
JDK的动态代理深入解析(Proxy,InvocationHandler)(转)
摘要:《代理模式--结构型 》 《JDK的动态代理深入解析(Proxy,InvocationHandler)(转)》 《Spring AOP 实现原理》 一、什么是动态代理 动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延
阅读全文
posted @
2012-12-03 13:52
duanxz
阅读(5606)
推荐(2)
JAVA迭代器与迭代模式
摘要:一、介绍 在jdk中,与迭代器相关的接口有两个:Iterator 与 IterableIterator:迭代器,Iterator及其子类通常是迭代器本身的结构与方法;迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的。只要拿到这
阅读全文
posted @
2012-10-18 18:10
duanxz
阅读(1472)
推荐(0)
Memento模式
摘要:一、Memento模式的目的:memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态.二、Memento模式的简单例子:下面的例子来源于Jdon网站的《GoF设计模式系列》的《Memento模式》,虽然简单却形象地表明了Memento模式的应用Java代码packagememento;importjava.io.File;publicclassOriginator{privateintnumber;privateFilefile=null;publicOriginator(){}//创建一个Memento,将自身作为参数传入publicMemento
阅读全文
posted @
2012-08-28 16:30
duanxz
阅读(798)
推荐(0)
spring 中常用的设计模式
摘要:一、 Spring 中常见的设计模式 工厂模式 : BeanFactory 简单工厂:Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。 工厂方法:Spring中的FactoryB
阅读全文
posted @
2012-08-21 09:11
duanxz
阅读(1909)
推荐(0)
空(标识)接口的重要性
摘要:标签接口真有那么重要吗?比如说很多初学者认为java.io.Serializable这样的接口,很多时候可用可不用,不用一样能执行对象系列化功能。 标识接口是没有任何方法和属性的接口。标识接口不对实现它的类有任何语义上的要求,它仅仅表明它的类属于一个特定的类型。标识接口在java语言中有一些很著名的
阅读全文
posted @
2012-06-19 09:27
duanxz
阅读(515)
推荐(0)
UML类图符号 各种关系说明以及举例
摘要:UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。 依赖(Dependency):元素A的变化会影响元素B,
阅读全文
posted @
2012-06-13 14:21
duanxz
阅读(93374)
推荐(31)
调停者模式(Mediator)
摘要:调停者模式(Mediator) 属于对象的行为模式。1.1.1 定义调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。1.1.2 结构 Mediator:抽象调停者角色,它定义出同事对象到调停者对象得接口,这个角色一般由Java抽象类实现.ConcreteMediator:具体调停者模式,从抽象调停者继承,实现了超类所声明的事件方法,它从具体同事对象接收消息,向具体同事对象发出命令.Coll...
阅读全文
posted @
2012-06-12 13:24
duanxz
阅读(901)
推荐(0)
结构型--适配器模式
摘要:一、什么是适配器模式 定义:适配器模式属于结构型模式,把一个类的接口变成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。 适配器模式又可以分为4种类型,类适配器模式、对象适配器模式、单接口适配器模式(缺省适配器模式)和双向适配器模式。后2种模式的实现比较复杂并且在
阅读全文
posted @
2012-06-05 15:44
duanxz
阅读(1830)
推荐(0)
设计模式:Abstract Factory和Builder(转)
摘要:如果说 Factory和Prototype是同一个层次的话,那么Abstract Factory和Builder就是更高一级的层次。很多人都对这两个设计模式的区别不是很清楚,包括我也一样,所以今天特地在这里列举一下他们之间的异同点,来做个比较。(以下简称前者为A,后者为B)一、意图的比较A:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。B:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 从上述可以看出,两者同为对象创建型设计模式,但是前者是为了设计一个互相协作的对象组,而后者则侧重于创建一个复杂对象。也就是说虽然两者都提供了一系列类的接口用来.
阅读全文
posted @
2012-06-04 17:30
duanxz
阅读(514)
推荐(0)
Builder模式
摘要:一、场景 建造者模式是日常开发中比较常见的设计模式,它的主要作用就是将复杂事物创建的过程抽象出来,该抽象的不同实现方式不同,创建出的对象也不同。通俗的讲,创建一个对象一般都会有一个固定的步骤,这个固定的步骤我们把它抽象出来,每个抽象步骤都会有不同的实现方式,不同的实现方式创建出的对象也将不同。举个常
阅读全文
posted @
2012-06-03 18:51
duanxz
阅读(360)
推荐(0)
Flexibility Pattern架构和设计模式
摘要:一、 分隔核心单元l Model-View-Controller架构模式l Presentation-Abstraction-Control架构模式l Layer架构模式l Pipes and Filter架构模式二、 在系统运行时的灵活性Component Configurator设计模式(构建一个系统配置机制)三、 自由扩展、变更、自适应l Intercepter设计模式l Visitor设计模式l Strategy设计模式l Extension Object设计模式l Decorator设计模式四、 将系统功能隐藏,分割开Client端对系统功能的直接依赖l Extension Inte
阅读全文
posted @
2012-06-03 18:18
duanxz
阅读(337)
推荐(0)
外观模式 Facade Pattern
摘要:1.1.1 什么是外观模式Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。1.1.2 外观模式的结构1.1.1 外观模式的角色和职责门面角色( facade ):这是门面模式的核心。它被客户角色调用,因此它熟悉子系统的功能。它内部根据客户角色已有的需求预定了几种功能组合。子系统角色(Subsystem classes):实现了子系统的功能。对它而言, façade 角色就和客户角色一样是未知的,它没有任何 façade 角色
阅读全文
posted @
2012-06-01 16:45
duanxz
阅读(977)
推荐(0)
Java之命令模式(Command Pattern)
摘要:先从起源说起。在设计界面时,大家可以注意到这样的一种情况,同样的菜单控件,在不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能完全一致。按照最差、最原始的设计,这些不同功能的菜单、或者右键弹出菜单是要分开来实现的,你可以想象一下,word文档上面的一排菜单要实现出多少个“形似神非”的菜单类来?这完全是行不通的。这时,就要运用分离变化与不变的因素,将菜单触发的功能分离出来,而制作菜单的时候只是提供一个统一的触发接口。这样修改设计后,功能点可以被不同的菜单或者右键重用;而且菜单控件也可以去除变化因素,很大的提高了重用;而且分离了显示逻辑和业务逻辑的耦合。这便是命令模式
阅读全文
posted @
2012-05-30 21:39
duanxz
阅读(967)
推荐(0)