装饰者模式1、意图: 动态地给一个对象添加一些额外的职责。就增加功能来说, Decorator模式相比生成子类更为灵活。该模式以对客 户端透明的方式扩展对象的功能。2、适用环境 (1)在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。 (2)处理那些可以撤消的职责。 (3)当不能采用生...
分类:
编程语言 时间:
2015-08-06 00:03:08
阅读次数:
194
在Java编程语言中,嵌套了很多设计模式的思想,例如IO流中的缓冲流就使用到下面要介绍的装饰者设计模式。
示例代码:
* 抽象构件角色:定义一个抽象接口,来规范准备附加功能的类
* @author Admin
*
*/
public interface Drink { //被装饰者的基类
public String description();
pu...
分类:
编程语言 时间:
2015-07-26 20:54:57
阅读次数:
161
前言:
IO对于系统设计来说,是一个很重要的关注点,往往系统运行的瓶颈就在IO设计上,无论是数据库IO,文件IO还是网络IO,都需要进行精致的设计,才能使得系统达到最佳运行状态。对于现代系统并发量、数据量的剧增,IO处理对于系统显得更加重要。研究Java IO对于我们工作有益无害。
Java.io包含了Java阻塞型IO的设计。Java的IO主要包含三个部分:
1.流式...
分类:
编程语言 时间:
2015-07-26 00:34:48
阅读次数:
202
1、接口1 package Decorator;2 3 public interface Sourceable {4 public void method();5 6 }2、接口实现类--被装饰者 1 package Decorator; 2 3 public class Source i...
分类:
其他好文 时间:
2015-07-24 18:14:06
阅读次数:
142
介绍
装饰者提供比继承更有弹性的替代方案。 装饰者用用于包装同接口的对象,不仅允许你向方法添加行为,而且还可以将方法设置成原始对象调用(例如装饰者的构造函数)。
装饰者用于通过重载方法的形式添加新功能,该模式可以在被装饰者前面或者后面加上自己的行为以达到特定的目的。
正文
那么装饰者模式有什么好处呢?前面说了,装饰者是一种实现继承的替代方案。当脚本运行时,在子类中增加行为会...
分类:
编程语言 时间:
2015-07-17 14:09:03
阅读次数:
110
代理模式和装饰者模式上在语法形式上几乎完全一样,那么它们的区别在哪里呢?装饰者模式:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活代理模式:为其它对象提供一种代理以控制对这个对象的访问。其实,它们的着重点一个在于“增加”职责,另一个在于“控制”访问。这是它们最本质的...
分类:
其他好文 时间:
2015-07-16 22:05:14
阅读次数:
150
《head first》中 的例子:咖啡店有各种咖啡饮料,可以往咖啡里面加各种调料变成另一种饮料,如果使用继承的方式来为每一种饮料设计一个类,代码的复杂度很容易膨胀,而且会继承父类的所有特性,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;同时,又掉入了另一个陷阱,随着扩展功能的增多,子类也会增多,各种子类的组合,就会导致类的膨胀,最后,就会被淹没在类的海洋。
这时大神们就发明了装饰者...
分类:
编程语言 时间:
2015-07-15 17:08:54
阅读次数:
447
using System;namespace ConsoleApplication7{ class Program { static void Main(string[] args) { // 我买了个苹果手机 Ph...
分类:
其他好文 时间:
2015-07-11 18:14:13
阅读次数:
113