Java设计模式

Java工厂模式(Factory模式)

1

Harries 发布于 2015-01-21

工厂模式定义:提供创建对象的接口。 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,...

阅读(371)评论(0)赞 (0)

Java单态模式(Singleton模式)

小丁 发布于 2015-01-21

定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。 还有,singleton能够被状态化;这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中...

阅读(319)评论(0)赞 (0)

Java建造者模式(Builder模式)

Harries 发布于 2015-01-21

Builder模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们。用户不知道内部的具体构建细节。Builder模式是非常类似抽象工厂模式,...

阅读(405)评论(0)赞 (0)

Java原型模式(Prototype模式)

邓龙华 发布于 2015-01-21

Prototype模式定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 Prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象...

阅读(286)评论(0)赞 (0)

Java共享模式/享元模式(Flyweight模式)

邓龙华 发布于 2015-01-21

Flyweight定义:避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类(元类)。 为什么使用共享模式/享元模式 面向对象语言的原则就是一切都是对象,但是如果真正使用起来,有时对象数可能显得很庞大,比如,字处理软件,如果以每个文字都作为一个对象,几千个字,对象数就...

阅读(369)评论(0)赞 (0)

Java桥模式(Bridge模式)

邓龙华 发布于 2015-01-21

Bridge定义:将抽象和行为划分开来,各自独立,但能动态的结合。 为什么使用桥模式 通常,当一个抽象类或接口有多个具体实现(concrete subclass),这些concrete之间关系可能有以下两种: 这多个具体实现之间恰好是并列的,如前面举例,打桩,有两个concret...

阅读(297)评论(0)赞 (0)

Java装饰模式(Decorator模式)

小丁 发布于 2015-01-21

Decorator常被翻译成"装饰",我觉得翻译成"油漆工"更形象点,油漆工(decorator)是用来刷油漆的,那么被刷油漆的对象我们称decoratee。这两种实体在Decorator模式中是必须的。 Decorator定义:动态给一个...

阅读(355)评论(0)赞 (0)

Java组合模式(Composite模式)

小丁 发布于 2015-01-21

Composite定义:将对象以树形结构组织起来,以达成“部分-整体” 的层次结构,使得客户端对单个对象和组合对象的使用具有一致性。 Composite比较容易理解,想到Composite就应该想到树形结构图。组合体内这些对象都有共同接口,当组合体一个对象...

阅读(282)评论(0)赞 (0)

Java适配器模式(Adapter模式)

尖兵 发布于 2015-01-21

适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份。 为何使用适配器模式 我们经常碰到要将两个没有关系的类组合在一起使用,第一解决方案是:修改各自类的接口,但是如果我们没有源代码,或者,我们不愿意为了...

阅读(301)评论(0)赞 (0)

Java代理模式(Proxy模式)

邓龙华 发布于 2015-01-21

理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣。 Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的意思,我们也许有代理服务器等概念,代理概念可以解释为:在出发点到...

阅读(302)评论(0)赞 (0)

Java迭代模式(Iterator模式)

尖兵 发布于 2015-01-20

上了这么多年学,我发现一个问题,好象老师都很喜欢点名,甚至点名都成了某些老师的嗜好,一日不点名,就饭吃不香,觉睡不好似的,我就觉得很奇怪,你的课要是讲的好,同学又怎么会不来听课呢,殊不知:“误人子弟,乃是犯罪!”啊。 好了,那么我们现在来看老师这个点名过程...

阅读(295)评论(0)赞 (0)

Java模板模式(Template模式)

Harries 发布于 2015-01-20

Template模式定义:定义一个操作中算法的骨架,将一些步骤的执行延迟到其子类中。 其实Java的抽象类本来就是Template模式,因此使用很普遍。而且很容易理解和使用,我们直接以示例开始: public abstract class Benchmark {   /**   ...

阅读(299)评论(0)赞 (0)

Java备忘录模式(Memento模式)

1

Harries 发布于 2015-01-20

Memento定义:memento是一个保存另外一个对象内部状态拷贝的对象,这样以后就可以将该对象恢复到原先保存的状态。 Memento模式相对也比较好理解,我们看下列代码: public class Originator {    private int number;   p...

阅读(301)评论(0)赞 (0)

Java中介模式(Mediator模式)

邓龙华 发布于 2015-01-20

Mediator定义:用一个中介对象来封装一系列关于对象交互行为。 为何使用Mediator模式/中介模式 各个对象之间的交互操作非常多,每个对象的行为操作都依赖彼此对方,修改一个对象的行为,同时会涉及到修改很多其他对象的行为,如果使用Mediator模式,可以使各个对象间的耦合...

阅读(254)评论(0)赞 (0)

Java解释器模式(Interpreter模式)

邓龙华 发布于 2015-01-20

Interpreter定义:定义语言的文法,并且建立一个解释器来解释该语言中的句子。 Interpreter似乎使用面不是很广,它描述了一个语言解释器是如何构成的,在实际应用中,我们可能很少去构造一个语言的文法。我们还是来简单的了解一下。 首先要建立一个接口,用来描述共同的操作。...

阅读(297)评论(0)赞 (0)

Java策略模式(Strategy模式)

1

小丁 发布于 2015-01-20

Strategy是属于设计模式中 对象行为型模式,主要是定义一系列的算法,把这些算法一个个封装成单独的类。 Stratrgy应用比较广泛,比如,公司经营业务变化图,可能有两种实现方式,一个是线条曲线,一个是框图(bar),这是两种算法,可以使用Strategy实现。 这里以字符串...

阅读(267)评论(0)赞 (0)