摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式可以使客户端将单纯元素与复合元素同等看待。合成模式:安全式和透明式合成模式1,安全式合成模式抽象构件角色:这是一个抽象角色,它给参加组合的对象规定一个接口树叶构件角色:代表参加组合的树叶对象,一个树叶没有下级的子对象,定义参加组合的原始对象的行为树枝构件角色:代表参加组合的有子对象的对象,并给出树枝构件对象的行为1.packagejavaPattern.composite;2.3.impor 阅读全文
posted @ 2011-01-13 10:47 魔战 阅读(231) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式外部与一个子系统的通信必须通过一个统一的门面对象进行,这就是门面模式。一般而言,Facade模式是为了 降低子系统之间,客户端与实现化层之间的依赖性。当在构建一个层次化的系统时,也可以同过使用Facade模式定义系统中每一层的入口,从而简化层与层之 间的依 阅读全文
posted @ 2011-01-13 10:46 魔战 阅读(388) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案一.UML示意图:二.组成部分:1.抽象构件:原始的功能接口2.具体构件:具体的原始功能类3.装饰角色:持有具体构件类的对象,以便执行原有功能4.具体装饰:具体扩展的功能在这里三.例子代码:使用装饰模式来演示一个对”行走”功能扩展的例子(听音乐+行走和唱歌+行走)1.抽象构件package com.eekq.decorator;publicinterface Component { /**原 阅读全文
posted @ 2011-01-13 10:44 魔战 阅读(263) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态和外蕴状态。一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的,因此,一个享元可以具有内蕴含状态并可以共享。一个外蕴状态是随环境改变而改变的,不可以共享的状态,享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。外蕴状态不可以影响享元对象的内蕴状态,它们是相互独立的。享元模式的种类:单纯享元模式和复合享元模式两 阅读全文
posted @ 2011-01-13 10:42 魔战 阅读(387) 评论(0) 推荐(0) 编辑
摘要: Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式是对象间的间接通信,间接通信可以给出较低的耦合关系,较强的合作关系,以及微妙的结构和易于复用的设计架构。代理模式的结构:抽象主题角色:声明了真实主题和代理主题的共同接口,这样一来在任何可以使用真实主题的地方都可以使用代理主题。代理主题角色:代理主题角色内部有对真实主题的易用,从而可以在任何时候操作真实主题对象。真实主题角色:定义了代理角色所代表的真实对象红酒代理商和红酒厂商都有销售 阅读全文
posted @ 2011-01-13 10:29 魔战 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 适配器模式是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法再一起工作的两个类能够在一起工作。适配器模式:类的适配器模式,对象的适配器模式1,类的适配器模式类的适配器模式把被适配的类的api转换成为目标类的api目标角色:这既是所期待得到的接口,注意,由于这里讨论的是类适配器模式,因此目标不可以是类源角色:现有需要适配的接口适配器角色:适配器把源接口转换成目标接口public class Adaptee{ public void operation1(){}}public interface Target{ public abstract void operator1 阅读全文
posted @ 2011-01-12 12:09 魔战 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 饿汉式----单例模式public class Eager{ private static final Eager eager=new Eager(); private Eager(){} public static Eager getInstance() { return eager; }}懒汉式----单例模式public class Lazy{private static Lazy lazy=null;private Lazy(){}public static Lazy getInstance(){ if(lazy==null) lazy=new Lazy(); return lazy; 阅读全文
posted @ 2011-01-12 10:25 魔战 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 原型模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何创建的细节。客户角色:客户类提出创建对象的请求抽象原型角色:定义clone()方法具体原型角色:实现clone()方法public interface Prototype extends Cloneable{ Prototype clone();}public class ConcreatePrototype implements Prototype{ public Object clone() { try { return super.clone(); } catch(CloneNotSupportedException 阅读全文
posted @ 2011-01-11 22:27 魔战 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 建造者模式可以将一个产品的内部表象(产品的零件)与产品的生成过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象。产品类:packagecom.javapatterns.builder;publicclassProduct...{publicProduct()...{//System.out.println("productisiniting.");}}抽象建造方法:abstractpublicclassBuilder...{publicabstractvoidbuildPart1();publicabstractvoidbuildPart2();publicabstractP 阅读全文
posted @ 2011-01-11 21:14 魔战 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 单例模式分为三类:饿汉式单例,懒汉式单例,登记式单例单例模式的特点:1,单例类只能有一个实例2,单例类必须自己创建自己的唯一实例3,单例类必须给所有其他对象提供这一实例单例模式类图一,懒汉式单例/** 单例模式----懒汉式单例* * 在类被加载的时候,唯一实例已经被创建* */public class LazySingleton {/* * 私有静态对象,加载时候不做初始化 */private static LazySingleton m_intance=null;/* * 私有构造方法,避免外部创建实例 */ private LazySingleton(){ } synchronize 阅读全文
posted @ 2011-01-11 11:36 魔战 阅读(232) 评论(0) 推荐(0) 编辑