设计模式
shy7778
这个作者很懒,什么都没留下…
展开
-
设计模式之Composite(组合)
Composite定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性.Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象的方法被调用执行时,Composite将遍历(Iterator)整个树形结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形容。所以...2008-05-17 03:06:00 · 125 阅读 · 0 评论 -
组合(Composite)模式--实践
组合(Composite)模式主要角色: 1.Component角色 2.Leaf角色 3.Composite角色 package com.pattern.composite; /** *//** * 组件抽象角色 * */ public interface Component { public void run(); } pac...2008-05-17 03:10:00 · 103 阅读 · 0 评论 -
Adapter设计模式的学习
GOF《设计模式》一书对Adapter模式是这样描述的: 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。 图解 : 这段话大致是说:我们需要一种方式,为一个功能正确但接口不合的对象创建一个新接口。例如,客户给我们如下需求: 1) 为都有“显示”(display)行为的点、线、正方形分别创建类。 ...2008-05-23 07:00:00 · 72 阅读 · 0 评论 -
Singleton模式的学习
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。 还 有, singleton能够被状态化; 这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且 能synchronize的安全自动加1,如果你要...2008-05-23 07:18:00 · 97 阅读 · 0 评论 -
Builder设计模式的学习
对于Builder模式很简单,但是一直想不明白为什么要这么设计,为什么要向builder要Product而不是向知道建造过程的Director要。刚才google到一篇文章,总算清楚了。在这里转贴一下这位richardluo的比喻。简单地说,就好象我要一座房子住,可是我不知道怎么盖(简单的砌墙,层次较低),也不知道怎么样设计(建几个房间,几个门好看,层次较高),于是我需要找一帮民工,他们会砌墙,...2008-05-23 09:18:00 · 81 阅读 · 0 评论 -
Deafult Adapter的学习
一、概述 当不需要全部实现适配器接口提供的方法时,可先设计一个抽象类实现适配器接口,并为接口中每个方法提供一个默认实现(空方法)。那么该抽象类的子类可有选择地覆盖父类的某些方法来实现需求。 二、结构 三、动机 对于一个接口不想使用其所有的方法时。我觉得把Default Adapter模式和Adapter模式割裂开来,不会影响对Default Adapter模式的理解。Defaul...2008-05-24 00:35:00 · 112 阅读 · 0 评论 -
学习装饰者模式(Decorator)
1、定义及作用 该模式以对客户端透明的方式扩展对象的功能。 2、涉及角色 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类。 具体构件角色:将要被附加功能的类,实现抽象构件角色接口。 抽象装饰者角色:持有对具体构件角色的引用并定义与抽象构件角色一致的接口。 具体装饰角色:实现抽象装饰者角色,负责为具体构件添加额外功能。 ...2008-05-25 01:58:00 · 70 阅读 · 0 评论 -
Java Prototype模式的学习(原型模式)
原型模式定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 如何使用? 因为Java中的提供clone()方法来实现对象的克隆,所以Prototype...2008-05-26 01:39:00 · 116 阅读 · 0 评论 -
Flyweight模式 的学习
一、Flyweight模式的意图:缓存(共享)可以共同的对象、属性,避免创建大量的重复对象、内容。二、Flyweight模式的特点:为重复或可共享的对象、属性设置一个缓冲,称为内部属性。这些内部属性一般情况下都是不可修改的,也就是在第一个对象、属性被创建后,就不会去修改了(否则就没意义了)。除了共享对象、属性之外,还有一些是基于应用环境,或是实时数据,这些无法共享的东西我们称为外部状态。在Flyw...2008-05-27 02:42:00 · 146 阅读 · 0 评论