【发布时间】:2014-05-09 22:55:52
【问题描述】:
使用 Java 的第一天。非常基本的问题:我有三个基类,由许多类多重继承。这些基类中的每一个都有很多实现,而抽象方法很少:
class Consumer { /* lots of stuff */ };
class Producer { /* lots of stuff */ };
class Logger { /* lots of stuff */ };
class A : public Consumer, Producer, Logger {}
...
class Z : public Consumer, Producer, Logger {}
现在我知道我可以将三个基类中的两个转换为接口,并多重继承这两个接口并扩展一个类。不够充分,因为这些基类中的所有实现复制到许多子类中没有意义。
我正在阅读一些关于委托或组合的东西,但我不知道如何在这里应用它。基本上,我的思维过程是由我的 C++ 经验所塑造的。 将我的 C++ 类结构转换为 Java 的阻力最小的路径是什么?
如果需要,我可以填写更多的基类,但希望没有必要。
【问题讨论】:
-
Consumer、Producer 和 Logger 是实际的类,还是针对这个问题重命名的?
-
我的猜测是它被重命名为这个问题...... ;-)
-
@zmo 我不需要知道他们的名字,我需要知道他们在什么级别上运作。我的意思是,什么的消费者?
-
无论如何,我投票赞成关闭这个问题,因为它太宽泛了,因为它没有明显的简单解决方案。
-
@zmo 好吧,这不是必需的,但我有点担心这个设计无法自己挽救。 Consumer 和 Producer 过于通用,Logger 应该使用组合创建。
标签: java c++ oop inheritance