【发布时间】:2019-06-26 07:54:17
【问题描述】:
假设我有两个具有下游订阅(订阅者)的类
class A {
SubscriptionManager<A> subscriptionManager; // downstream subscriptions
void addSub(Subscription<A> sub){
subscriptionManager.addSub(sub);
}
}
class B {
SubscriptionManager<B> subscriptionManager; // downstream subscriptions
void addSub(Subscription<B> sub){
subscriptionManager.addSub(sub);
}
}
这是我正在处理的问题,它是一个设计问题。我听说过多次组合优于继承,在这样的示例中,我可以创建一个包含订阅管理器并具有添加和删除订阅者功能的抽象类。
但是,compoisiton over inheritance 让我不使用抽象类。我想知道这里什么是正确的?很明显,您会看到 A, B 类中的任何一个的整个 add 方法都存在代码重复(将来可能会更多)。
【问题讨论】: