从Java类库看设计模式3

http://www-128.ibm.com/developerworks/cn/java/l-jdkdp/part3/index.html

关于Bridge模式:

Abstraction中有一个Implementor的引用,client直接调用RefinedAbstraction,屏蔽了实现的细节

通常的,可以在实现部分定义一些基本的原子方法,而在抽象部分则通过组合定义在实现层次中的原子方法

实现系统的功能

JR的http://www.javaresearch.org/article/showarticle.jsp?column=31&thread=41890很好的体现了这一点

http://www.javaresearch.org/article/showarticle.jsp?column=31&thread=12461说的也比较清楚

JAVA的IO是Decorator的经典应用

FilterInputStream(即Decorator类)是InputStream(即Subject类)的子类,具有同Subject相同的interface

Java中的IO还允许你引入自定义的Decorator,来实现自己想要的功能。在良好的设计背景下,这做起并不复杂,只需要4步:

  1. 创建两个分别继承了FilterInputStream和 FilterOutputStream的子类
  2. 重载read()和write()方法来实现自己想要的功能。
  3. 可以定义或者重载其它方法来提供附加功能。
  4. 确定这两个类会被一起使用,因为它们在功能上是对称的。

JR中http://www.javaresearch.org/article/showarticle.jsp?column=31&thread=39753说明如何设置统一的

interface,使得Decorator可以发挥作用

对于Decorator同继承的区别,文章中也说的比较清楚

注意:

PipedInputStream和PipedOutStream是用来多线程之间的交互(通过管道)

PrintStream只在输出时才有,所以System.err和System.out都是PrintStream的流,而System.in则是没有定义的Stream

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值