装饰者模式在java的设计模式中属于比较重要和常见的模式,在java的IO设计就设计到很多的装饰者模式。从最简单的装饰者模式开始说起。
首先定义一个接口Base
package com.luchi.model.wrapper; public interface Base { public void doThings1(); }
在接口中定义一个方法doThings1();
再来定义一个被包装类
package com.luchi.model.wrapper; public class WrapperCLass1 implements Base{ @Override public void doThings1() { // TODO Auto-generated method stub System.out.println("I am wrapper class1"); } }
然后定义一个包装类
package com.luchi.model.wrapper; public class WrapperClass2 implements Base{ private Base baseObject; public WrapperClass2(Base baseObject){ this.baseObject=baseObject; } @Override public void doThings1() { // TODO Auto-generated method stub System.out.println("I am wrapper class 2"); baseObject.doThings1(); System.out.println("I am wrapper class 2"); } }
最后测试类
package com.luchi.model.wrapper; public class TestWrapper { public static void main(String[]args){ WrapperCLass1 wrapper1=new WrapperCLass1(); WrapperClass2 wrapper2=new WrapperClass2(wrapper1); wrapper2.doThings1(); } }
来看下测试结果:
I am wrapper class 2
I am wrapper class1
I am wrapper class 2
这是常见的设计模式,包括在动态代理中也会用到这个模式的思想,只不过动态代理设计到源代码编译会比较复杂。
在javaIO设计模式中,很容易看到这一个模式的设计身影
┌BufferedInputStream
├DataInputStream
┌FilterInputStream┼LineNumberInputStream
├FileInputStream └PushbackInputStream
├ByteArrayInputStream
┌InputStream──┼PipedInputStream
│ ├SequenceInputStream
│ ├StringBufferInputStream
│ └ObjectInputStream ┌BufferedOutputStream
│ ┌FilterOutputStream┼DataOutputStream
Object┤ ├FileOutputStream └PrintStream
├OutputStream──┼ByteArrayOutputStream
├File ├PipedOutputStream
├FileDescriptor └ObjectOutputStream
├ObjdecStreamClass
├RandomAccessFile
└StreamTokenizer
我们常见使用的BufferedInputStream buff=new BufferedInputStream(new FileInputStream(""));这句话就使用了装饰者模式,见微知著,javaIO还有很多的方面用到了这种设计模式
相关推荐
java设计模式之装饰者模式代码
设计模式--装饰者模式java例子
JAVA设计模式之装饰模式代码
本章可以称为“给爱用继承的人一个全新的设计眼界”。我们即将再度探讨典型...一旦你熟悉了装饰者的技巧,你将能够在不修改任何底层代码的情况下,给你的(或别人的)对象赋予新的职责。——《Head First 设计模式》
java设计模式之装饰模式java设计模式之装饰模式java设计模式之装饰模式java设计模式之装饰模式java设计模式之装饰模式java设计模式之装饰模式java设计模式之装饰模式java设计模式之装饰模式
利用工厂模式、装饰者模式、策略模式、责任链模式进行设计与实现。工厂模式完成办公椅不同种类的生成,装饰者模式完成给办公椅添加配件,策略模式完成不同打折算法的自动更替,责任链模式以及反射机制完成不同职位...
java设计模式【之】装饰者模式【源码】【场景:煎饼果子+肠+蛋】 * 测试类【之】煎饼果子来一套 * * 不改变原有对象的基础上,强化已经存在的功能 * 被装饰者与装饰者实现同一个抽象或接口 * 装饰后,最终还是...
java装饰者模式实现,通过豆浆,加糖加鸡蛋加黑豆生动的实现了装饰着的代码,可以学习,也可以在此基础上进行扩充
9 装饰模式 10 原型模式 11 委派模式 12 适配器模式 设计模式综合运用 1 门面+模版方法+责任链+策略 2 门面+模版方法+责任链+策略+工厂方法 3 动态代理+Spring AOP 4 责任链模式进阶 Spring Framework设计模式 ...
java 设计模式 装饰模式,希望对大家理解设计模式有帮助
设计模式之装饰模式 Java代码实现;另由本人所写,转载请注明原址。
该文档描述了java装饰模式,装饰模式是javaIO流底层所采用的设计模式。
2.结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 4.行为型模式:模板方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略...
java中的装饰模式及动态代理模式示例源码,并且手写数据库连接池,以及展示动态代理模式在连接池中的使用
java 23种设计模式 装饰模式,详细源码分析请看博客: http://blog.csdn.net/github_22022001/article/details/41543475
计算机后端-Java-图解java设计模式073 装饰者模式(3).avi
计算机后端-Java-图解java设计模式075 装饰者模式(5).avi
计算机后端-Java-图解java设计模式076 装饰者模式(6).avi
22.4.1 Java世界中的观察者模式 22.4.2 项目中真实观察者模式 22.4.3 订阅发布模型 22.5 最佳实践 第23章 门面模式 23.1 我要投递信件 23.2 门面模式的定义 23.3 门面模式的应用 23.3.1 门面模式的优点 23.3.2 门面...
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...