我从委托模式中了解到的是那个类 (ClassA) 做了另一个类 (ClassB) 所做的事情。ClassA 还必须比 ClassB 做更多的事情(有更多的方法)。您可能很想简单地让 ClassA 子类 ClassB。抵制这种诱惑,因为这是错误的做法。继承本来就很慢,正确的设计是在ClassA中定义一个ClassB类型的数据成员。通过这种方式,您消除了子类化的需要并降低了耦合强度
//ClassA
public class ClassA{
private ClassB classB;
//methods
public void doThis(){classB.doThis();}
public void doThat(){…}
}
这是B类
ClassB
public class ClassB{
public void doThis(){…}
}
请指教是我的理解是正确的。