从Java类库看设计模式3

    技术2022-05-11  75

    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步:

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

    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)