重构中的名词解释--->将继承替换为委托

来源:互联网 发布:世界黑客编程大赛 编辑:程序博客网 时间:2024/06/16 04:58

1.前提

父类和子类需要进一步解耦合,或者可能一个新的类需要某个类多个已有方法时考虑使用

2.运用

存在如下父类

class animal {      public void eat(Object element){          element.del();      }      public Object say(language l){         l.say();      }}

有下子类或新类需要animal类方法

class people extend animal {      public void eat(Object element){          super(element);                }      public Object say(language l){         super(l);            }      public Object sosial(People p){         addRelation(p);        }}

此时应该将上方形式替换为以下形式

class people {      private animal a = new animal();      public void eat(Object element){          a.eat(element);                }      public Object say(language l){         a.say(l);            }      public Object sosial(People p){         addRelation(p);        }}
0 0