- 浏览: 112469 次
- 性别:
- 来自: 成都
最近访客 更多访客>>
最新评论
-
dev_liu:
lipengyu2006 写道现在怎么样儿了啊 房子多少钱买 ...
最近比较心烦 -
lipengyu2006:
现在怎么样儿了啊 房子多少钱买的。
最近比较心烦 -
cynan168:
...
hibernate数据查询的几种方式 -
My_Choice:
joram中文文档 -
My_Choice:
非常感谢,太有用了,中文文档不好找啊,而且是这么详细的
joram中文文档
文章列表
Interpreter 定义:
定义语言的文法 ,并且建立一个解释器来解释该语言中的句子.
Interpreter 似乎使用面不是很广,它描述了一个语言解释器是如何构成的,在实际应用中,
我们可能很少去构造一个语言的文法.我们还是来简单的了解一下:
首先要建立一个接口,用来描述共同的操作.
public interface AbstractExpression {
void interpret( Context context );
}
再看看包含解释器之外的一些全局信息
public interface Context { }
AbstractExpression 的具体实现分两种:终结符表 ...
- 2007-01-20 02:53
- 浏览 1177
- 评论(0)
Mediator 定义:
用一个中介对象来封装一系列关于对象交互行为.
为何使用Mediator?
各个对象之间的交互操作非常多;每个对象的行为操作都依赖彼此对方,修改一个对象的行
为,同时会涉及到修改很多其他对象的行为,如果使用Mediator 模式,可以使各个对象间的
耦合松散,只需关心和 Mediator 的关系,使多对多的关系变成了一对多的关系,可以降低系
统的复杂性,提高可修改扩展性.
如何使用?
首先 有一个接口,用来定义成员对象之间的交互联系方式:
public interface Mediator { }
Meiator 具体实现,真正实现交互操作的内容:
public cla ...
- 2007-01-20 02:53
- 浏览 1189
- 评论(0)
Strategy 是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个
个封装成单独的类.
Stratrgy 应用比较广泛,比如, 公司经营业务变化图, 可能有两种实现方式,一个是线条曲
线,一个是框图(bar),这是两种算法,可以使用Strategy 实现.
这里以字符串替代为例, 有一个文件,我们需要读取后,希望替代其中相应的变量,然后输出.
关于替代其中变量的方法可能有多种方法,这取决于用户的要求,所以我们要准备几套变量
字符替代方案.
首先,我们建立一个抽象类RepTempRule 定义一些公用变量和方法:
public abstract class RepTemp ...
- 2007-01-20 02:51
- 浏览 1141
- 评论(0)
设计模式之State
State 的定义: 不同的状态,不同的行为;或者说,每个状态有着相应的行为.
何时使用?
State 模式在实际使用中比较多,适合"状态的切换".因为我们经常会使用If elseif else
进行状态切换, 如果针对状态的这样判断切 ...
- 2007-01-20 02:51
- 浏览 1099
- 评论(0)
Command 模式是最让我疑惑的一个模式,我在阅读了很多代码后,才感觉隐约掌握其大概原
理,我认为理解设计模式最主要是掌握起原理构造,这样才对自己实际编程有指导作
用.Command 模式实际上不是个很具体,规定很多的模式,正是这个灵活性,让人有些
confuse.
Command 定义
不少Command 模式的代码都是针对图形界面的,它实际就是菜单命令,我们在一个下拉菜单
选择一个命令时,然后会执行一些动作.
将这些命令封装成在一个类中,然后用户(调用者)再对这个类进行操作,这就是Command 模
式,换句话说,本来用户(调用者)是直接调用这些命令的,如菜单上打开文档(调用者),就直
...
- 2007-01-20 02:49
- 浏览 1037
- 评论(0)
Chain of Responsibility 定义
Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些
类之间是一个松散的耦合,唯一共同点是在他们之间传递request. 也就是说,来了一个请
求,A 类先处理,如果没有处理,就传递到B 类处理,如果没有处理,就传递到C 类处理,
就这样象一个链条(chain)一样传递下去。
如何使用?
虽然这一段是如何使用CoR,但是也是演示什么是CoR.
有一个Handler 接口:
public interface Handler{
public void handleReque ...
- 2007-01-20 02:47
- 浏览 1141
- 评论(0)
Java 深入到一定程度,就不可避免的碰到设计模式(design pattern)这一概念,了解设计模
式,将使自己对java 中的接口或抽象类应用有更深的理解.设计模式在java 的中型系统中应
用广泛,遵循一定的编程模式,才能使自己的代码便于理解, ...
- 2007-01-20 02:46
- 浏览 1024
- 评论(0)
Memento 定义:
memento 是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原
先保存的状态.
Memento 模式相对也比较好理解,我们看下列代码:
public class Originator {
private int number;
private File file = null;
public Originator(){}
// 创建一个Memento
public Memento getMemento(){
return new Memento(this);
}
// 恢复到原始值
public void setMemento(Memento ...
- 2007-01-20 02:45
- 浏览 1148
- 评论(0)
Template 定义:
定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中.
其实Java 的抽象类本来就是Template 模式,因此使用很普遍.而且很容易理解和使用,我们
直接以示例开始:
public abstract class Benchmark
{
/**
* 下面操作是我们希望在子类中完成
*/
public abstract void benchmark();
/**
* 重复执行benchmark 次数
*/
public final long repeat (int count) {
if (count <= 0)
return 0;
else {
long ...
- 2007-01-20 02:41
- 浏览 851
- 评论(0)
板桥里人 http://www.jdon.com 2002/05/02
Flyweight 定义:
避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类).
为什么使用?
面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞
大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就是几千,无疑耗
费内存,那么我们还是要"求同存异",找出这些对象群的共同点,设计一个元类,封装可以被
共享的类,另外,还有一些特性是取决于应用(context),是不可共享的,这也Flyweight 中两
个重要概念内部状态intrins ...
- 2007-01-20 02:40
- 浏览 1031
- 评论(0)
Bridge 定义 :
将抽象和行为划分开来,各自独立,但能动态的结合.
为什么使用?
通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete 之间关系可
能有以下两种:
1. 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concrete class:方形桩和
圆形桩;这两个形状上的桩是并列的,没有概念上的重复,那么我们只要使用继承就可以了.
2.实际应用上,常常有可能在这多个concrete class 之间有概念上重叠.那么需要我们把抽
象共同部分和行为共同部分各自独立开来,原来是准备放在一个接口里,现在需要设计两个
接口,分别放置抽 ...
- 2007-01-20 02:39
- 浏览 977
- 评论(0)
Composite 定义:
将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和
组合对象的使用具有一致性.
Composite 比较容易理解,想到Composite 就应该想到树形结构图。组合体内这些对象都有
共同接口,当组合体一个对象的方法被调用执行时,Composite 将遍历(Iterator)整个树形
结构,寻找同样包含这个方法的对象并实现调用执行。可以用牵一动百来形容。
所以Composite 模式使用到Iterator 模式,和Chain of Responsibility 模式类似。
Composite 好处:
1.使客户端调用简单,客户端可以一致 ...
- 2007-01-20 02:38
- 浏览 939
- 评论(0)
定义:
将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和
Adaptor(适配器)两个身份.
为何使用?
我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,
但是如果我们 ...
- 2007-01-20 02:36
- 浏览 875
- 评论(0)
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼
得水,享受游刃有余的乐趣.
Proxy 是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结
构,Proxy 是代理的意思,我 ...
- 2007-01-20 02:35
- 浏览 1123
- 评论(0)
Facade 的定义: 为子系统中的一组接口提供一个一致的界面.
Facade 一个典型应用就是数据库JDBC 的应用,如下例对数据库的操作:
public class DBCompare {
Connection conn = null;
PreparedStatement prep = null;
ResultSet rset = null;
try {
Class.forName( "<driver>" ).newInstance();
conn = DriverManager.getConnection( "<database>&q ...
- 2007-01-20 02:34
- 浏览 848
- 评论(0)