适配器模式(Adapter
Pattern),适配器模式又叫做变压器模式,也叫做包装模式(Wrapper),但是包装模式却不止一个,装饰模式也是包装模式。适配器模式是一种补救模式,他可以让你从因业务扩展而系统无法迅速适应的苦恼中解脱出来。我们在进行系统开发时,不管之前的可行性分析、需求分析、系统设计处理的多么完美,总会在关键时候、关键场合出现一些“意外”。这些“意外”,该来的还是要来,躲是躲不...
分类:
其他好文 时间:
2014-05-22 07:41:36
阅读次数:
281
Java装饰模式
装饰模式:给一个类添加一些额外的职责,并且在添加这些额外的职责时不会控制该类的执行逻辑。
UML类图:
组成部分:
抽象构件:原始的功能接口
具体构件:具体的原始功能类
装饰角色:持有具体构件类的对象,以便执行原有功能
具体装饰:具体扩展的功能在这里
下面看一个人物功能拓展的实例(姓名+爱好):
package com.d...
分类:
编程语言 时间:
2014-05-22 06:12:55
阅读次数:
322
创建模式:单件模式、工厂模式、抽象工厂模式、生成器模式、原型模式。结构模式:适配器模式、桥接模式、组成模式、装饰模式、外观模式、享元模式、代理模式。行为模式:中介者模式、命令模式、备忘录模式、状态模式、策略模式、解释器模式、迭代器模式、观察者模式、访问者模式、模板方法模式。第一类:单件模式(Sing...
分类:
其他好文 时间:
2014-05-22 02:24:18
阅读次数:
391
装饰模式使用被装饰类的一个子类的实例,把客户端的调用委派到被装饰类,装饰模式的关键在于这种扩展是完全透明的。
装饰模式在Java种使用也很广泛,比如我们在重新定义按钮、对话框等时候,实际上已经在使用装饰模式了。装饰模式最浅显的例子是相片-相框的例子。
一、原理图...
分类:
编程语言 时间:
2014-05-20 16:51:23
阅读次数:
292
装饰模式,是在不改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。是为已有功能动态添加更多功能的一种方式。当系统需要新功能的时候,把每个要装饰的功能放在单独的类中,并让这个类包装它所装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择的、按顺序地使用装饰功能包装对象。
装饰模式适用的场景:
需...
分类:
其他好文 时间:
2014-05-20 15:06:32
阅读次数:
228
学习设计模式已经有段时间了,初接触设计模式,尽管例子简单、生动,但还是感觉很是抽象。今天又学习了设计模式中的装饰模式,它最大的特点就是把所有需要的功能都按正确的顺序串联起来进行控制。这里需要强调的是“顺序”,也就是说这种装饰是建立在一定的顺序之上的,而且这种顺序是由人为控制的;不同于建造者模式,它的顺序是固定不变的。
**概念
动态地给一个对象添加一些额外的职责,就增加的功能来说,装饰...
分类:
其他好文 时间:
2014-05-18 09:28:12
阅读次数:
191
修饰模式,是面向对象编程领域中,一种动态地往一个类中添加新的行为的设计模式。就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。例如:DataOutputStream
dos = new DataOutputStream(new BufferedOutputStre...
分类:
其他好文 时间:
2014-05-17 21:01:13
阅读次数:
287
首先,设计模式只是一个种思想,从实际开发中,考虑各种情况,而慢慢积累优化出来的设计模型。在谈装饰者模式:在编码的过程,把具体的问题抽象成现实生活中的情景,往往很让人理解,后续维护也很简单。在这里我们就要抽象一个“装饰者”和一个“被装饰者”这个两个对象是装饰模式中不可缺少的。装饰模式还有一个原则,被装...
分类:
其他好文 时间:
2014-05-17 18:34:14
阅读次数:
270
快要毕业了,之前学习的设计模式没有想到这么重要,马马虎虎就应付过去了,现在重新学习一下。在这里写一下自己所理解的装饰模式,语言不多,看代码吧……package
decorator;/** * User.java * 定义一个接口,规定好一个方法,以后所有的类都去实现或重写这个方法 * @author...
分类:
编程语言 时间:
2014-05-15 21:13:37
阅读次数:
371