黑马程序员技术交流社区

标题: 祝大家新年快乐。。同时提一个问题。 [打印本页]

作者: 疯子的昨天    时间: 2014-1-1 22:49
标题: 祝大家新年快乐。。同时提一个问题。
各位师兄帮我看下这段代码。
class SuperPerson{
private person P;
SuperPerson(Person p){
this.p=p;}
public void superchifan(){
System.out.println("开胃菜“);
p.chifan();
System.out.println("甜点“);}
}
这是毕老师IO中讲装饰设计模式举例的一段代码,我想问一下为什么要写这段代码:private person P;
SuperPerson(Person p){
this.p=p;}如果不写 不是也可以直接调用下面的Superchifan();方法吗?有什么区别?谢谢大家 同时祝大家新年快乐。
作者: 浮出一个美    时间: 2014-1-1 22:57
这一集我也看过,还记得一点点。
他说:装饰模式就是对原来类的增强,这样就不用修改原有的类,实现松耦合。
既然是对原有类的增强,就还是要用到原有类的对象撒,所以在装饰类里声明一个成员变量person【被装饰类】,然后通过构造函数把person对象传进来,方便调用他的方法。
  1. public void superchifan(){
  2. System.out.println("开胃菜“);
  3. p.chifan();
  4. System.out.println("甜点“);}
  5. }
复制代码


纵然是超级吃饭,总归还是要吃饭的。
装修房屋,不可能说你只要家具,不要房子,对吧。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2