Java设计模式
文章平均质量分 67
liyangbing315
勤奋,热情,潇潇洒洒度人生!
展开
-
设计模式——一座隐形的桥
设计模式——一座隐形的桥设计模式在java基础知识和框架软件之间架起了一座隐形的桥,为什么这么说呢?首先:让我们来了解下设计模式的定义吧,什么是设计模式?我在这里讲的设计模式是指GoF (Gang of Four,也就是所谓的”四人组”)。GoF的设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的原创 2009-10-13 21:09:00 · 885 阅读 · 0 评论 -
策略模式
策略(Strategy)模式策略模式是对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。问题:假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cart)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定要比这复杂的多,比如:本网站可能度原创 2010-01-22 11:38:00 · 739 阅读 · 0 评论 -
备忘录模式
备忘录(Memento)模式备忘录模式(Memento Pattern)又叫快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。意图(Intent):在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先的保存的状态。备忘录(Memento)对象是一个用来存储另外一个对象内部状态的快照(Snapsho原创 2010-01-22 11:40:00 · 585 阅读 · 0 评论 -
命令模式
命令(Command)模式 命令(Command)模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中,命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。命令模式是对命令的封装。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。原创 2010-01-22 11:35:00 · 506 阅读 · 0 评论 -
Java中的对象池模式
Java中的对象池模式Java对象的生命周期分析:Java对象的生命周期大致包括三个阶段:对象的创建,对象的使用, 对象的清除。 因此,对象的生命周期长度可用如下的表达式表示: T = T1 + T2 + T3.其中T1表示对象的创建时间,T2表示对象的使用时间,而T3则表示对象的清除时间。由此,我们可以看出,只有T2是真正有效的时间,而T1,T3则是对象本身的开销。下面再看看T1,原创 2009-12-04 22:35:00 · 3609 阅读 · 0 评论 -
创建模式中的工厂模式
创建模式中的工厂模式创建模式(Creational Pattern)是对类的实例化过程的抽象化。一些系统在创建对象时,需要动态地决定怎样创建对象,创建那些对象,以及如何组合和表示这些对象。创建模式描述了怎样构造和封装这些动态的决定。创建模式(Creational Pattern)分为类的创建模式和对象的创建模式两种。◆ 类的创建模式 类的创建模式使用继承关系,把类的创建延迟到子类原创 2009-12-04 22:40:00 · 787 阅读 · 0 评论 -
行为模式(Behavioral Pattern)中的不变模式
行为模式(Behavioral Pattern)中的不变模式行为模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。行为模式分为类的行为模式和对象的行为模式两种。◆ 类的行为模式 类的行为模式使用继承关系在几个类之间分配行为。◆ 对象的行为模式 对象的行为模式则使用对象的聚合来原创 2009-12-04 22:28:00 · 1301 阅读 · 0 评论 -
创建模式中的单例模式
创建模式中的单例模式单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式的要点有三个: 一个是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须向整个系统提供这个实例。饿汉式单例类:饿汉式单例类是在Java语言里实现起来最为简便的单例类,下面的代码描述了一个这样的单例类。 package com.test; public class ObjectPoolFa原创 2009-12-08 22:21:00 · 700 阅读 · 0 评论 -
创建模式中的原始(Prototype)模式
创建模式中的原始(Prototype)模式原始模型模式属于对象的创建模式。通过给出一个原始对象来指明所要创建的对象的类型。然后用复制这个原型对象的办法创建出更多同类型的对象。原始模型模式: Java语言的构件模型直接支持原始模型模式。所有的JavaBean都继承自java.lang.Object,而Object类提供一个clone(),可以将一个JavaBean对象复制一份。但是,这个Ja原创 2009-12-08 22:19:00 · 483 阅读 · 0 评论 -
敏捷开发与极限编程
敏捷开发与极限编程简介 2001年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作、响应变化能力的价值观和原则,他们称自己为敏捷联盟,敏捷开发过程的方法很多,主要有:SCRUM, Crystal,特征驱动软件开发(Feature Driven Development, 简称FDD),自适应软件开发(Adaptive S原创 2010-03-16 22:56:00 · 9738 阅读 · 1 评论 -
MVC模式与用户输入数据检查
MVC模式与用户输入数据检查所谓的MVC模式,即模型-视图-控制器(Model-View-Controller)模式。MVC模式的结构图如下图所示: MVC模式的特殊性 MVC模式常常作为一个设计模式出现在各种讨论中,但是MVC模式实际上是架构模式,而不是设计模式。 John Vlissides在他们的著作“GOF95”里提到: “避免了可以分割较小模式的大的模式。比如,我们没有把Smalltal原创 2010-01-22 11:37:00 · 2000 阅读 · 0 评论 -
代理模式
代理(Proxy)模式代理模式是对象的结构模式,代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。假设一个系统已经有一个对象A.现在需要向这个系统加入一个新的对象C。对象A需要使用系统中已有的对象A,但是C不能像系统现在使用A这样使用A,要么是A提供的接口不符合C的要求,要么是A的功能需要进一步加强等。这时候设计师可以选择修改对象A,也可以选择使用一个中介对象B,让原创 2010-01-19 13:32:00 · 578 阅读 · 0 评论 -
访问者模式
行为模式中的访问者模式 访问者模式是对象的行为模式。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变。动机:类层次结构中可能经常由于引入新的操作,从而将类型变得脆弱。。。在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负原创 2010-01-19 13:31:00 · 621 阅读 · 0 评论 -
Java 的加载与反射机制
<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2原创 2009-10-18 16:46:00 · 841 阅读 · 0 评论 -
Java静态代理与动态代理
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 <!-- /* Sty原创 2009-10-18 19:28:00 · 649 阅读 · 0 评论 -
Java与模式
Java与模式本人接下来要学习Java与模式一书(阎宏编著)在学习过程中记下自己学习的一些心得和体会,希望和大家一起学习共同探讨与讨论。呵呵,这句话挺有味道的,和大家一起分享下:在西方的思想里面,分析一个结构直到把它分解为不可分割的单位,再加以数量化的研究和描述,是其典型的数理分析的套路。在西方科学文化中,不能够精确化和数量化的结构不受重视。而在中国传统的文化里面,不能够精确化和数量化原创 2009-10-23 14:57:00 · 588 阅读 · 0 评论 -
迭代子模式
迭代子(Iterator)模式动机(Motivation)在软件构建过程中,集合对象内部结构常常变化各异,但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为同一种算法在多种集合对象上进行操作提供了可能。使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方式。意图(Int原创 2010-01-19 13:24:00 · 3076 阅读 · 0 评论 -
观察者模式
观察者(Observer)模式观察者模式是对象的行为模式,又叫做发布-订阅(Publish/Subscribe)模式,模型-视图(Model/View)模式,源-监听器(Source/Listener)模式或从属者(Dependents)模式。动机(motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系”——一个对象(目标对象)的状态发生改变,所有的依赖对象(原创 2010-01-19 13:26:00 · 1566 阅读 · 0 评论 -
适配器模式
适配器模式适配(转换)的概念无处不在。。。。。。适配,即咋不改变原有的实现的基础上,将原先不兼容的接口转换为兼容的接口。动机(Motivation)在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对着中国“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口?原创 2010-01-19 13:27:00 · 618 阅读 · 0 评论 -
享元模式
享元模式(Flyweight Pattern) 享元模式的用意:享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(Extenal State).一个内蕴状态是存储在享元对象内部的,并且是不会随改变而有所不同的,因此,一个享元可以具有内蕴状态并可以共享。一个外蕴状态时随着原创 2010-01-19 13:28:00 · 1086 阅读 · 1 评论 -
装饰模式
装饰(Decorator)模式装饰(Decorator)模式又名包装器(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。动机(Motivation):过多地使用继承来扩展对象的功能,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性,并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多的子类的膨胀(多继承)。原创 2010-01-19 13:29:00 · 817 阅读 · 0 评论 -
门面模式
门面(Facade)模式门面模式是对象的结构模式,外部与一个子系统的通信必须通过一个统一的门面(Façade)对象进行,这就是门面模式。举例:医院的例子用一个例子进行说明,如果把中国大陆的医院作为一个子系统,按照部门职能,这个子系统可以划分为挂号,门诊,划价,收费,取药等。看病的人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样。 未使用门面模式原创 2010-01-19 13:30:00 · 568 阅读 · 0 评论 -
java责任链模式
责任链模式一、定义与结构从名字上大概也能猜出这个模式的大概模样——系统中将会存在多个有类似处理能力的对象。当一个请求触发后,请求将在这些对象组成的链条中传递,直到找到最合适的“责任”对象,并进行处理。 《设计模式》中给它的定义如下:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。从定义上原创 2010-05-13 16:34:00 · 1128 阅读 · 0 评论