黑马程序员技术交流社区
标题:
java怎么实现装饰者模式。
[打印本页]
作者:
0小菜鸟0
时间:
2014-7-19 22:02
标题:
java怎么实现装饰者模式。
本帖最后由 0小菜鸟0 于 2014-7-20 21:07 编辑
我知道java中的IO流,用了装饰者模式,但是我想自己用改怎么写呢?谁能写个demo,并简单讲解一下
作者:
不可言
时间:
2014-7-19 22:26
坐等楼下解答
作者:
SyouRai_Tsk
时间:
2014-7-19 23:23
编写一个类,实现与被包装类相同的接口
定义一个变量,记住被包装对象的引用
定义构造方法,注入被包装对象的引用
对于要改写的方法,写你的代码
对于不需要改写的方法,调用原有对象的对应方法
以下的例子是为readLine这个方法添加行号的例子
public class MyBufferedReader extends BufferedReader{
private int count = 1;
public MyBufferedReader(BufferedReader br){
super(br);
}
//先拿到原有对象的对应方法,判断其返回值后再进行包装
public String readLine() throws IOException {
String data = super.readLine();
if(data==null)
return data;
return count+++data;
}
}
作者:
star5603
时间:
2014-7-19 23:31
public class Person {
void eat(){
System.out.println("吃饭");
}
}
public class NewPerson{
private Person p;
public NewPerson(Person p) {
this.p = p;
}
void eat(){
System.out.println("开胃菜");
p.eat();
System.out.println("吃菜");
}
}
继承多了,会导致继承体系臃肿,不够灵活。
继承的想法是让缓冲区和具体的对象进行结合。装饰设计模式是将缓冲进行单独的封装,与要缓冲的对象关联。
笔记内容,希望有所帮助,可以一起探讨。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2