gpt4 book ai didi

java - 设计模式/多重继承解决方法java

转载 作者:行者123 更新时间:2023-11-30 04:16:25 26 4
gpt4 key购买 nike

我有一个带有类层次结构的 Java 包,例如类 A 和子类 A1、A2、A3...

对于特定的应用程序,我需要创建实现接口(interface) B 的类(类型 A)。这些新类将有一些共同点,所以我的第一个想法是创建一个继承自 A 并实现 B 的基类 C ,而我的新类 C1、C2、C3 等将仅从 C 继承。但是,其中一些类 Ci 将需要 Aj 之一中存在的功能,通过这种方法,我需要重新实现此类功能(A 中未定义的功能)。对于某些 Ci,我想继承各个 Ai 的行为,但同时继承 C 中所有 Ci 的共同行为。当然,Java 不允许多重继承,所以我不能这样做直接这个。我当然不想仅仅因为不支持 MI 就重新实现这么多东西,但我没有找到解决办法。有什么想法吗?

最佳答案

您真的需要子类化还是只想重用代码?

听起来您使用的是复合模式,可能还使用了策略模式:

您的 C 类将具有 A 类型的字段,也可能具有 B 类型的字段,并在适当的情况下将调用委托(delegate)给它们。这为您提供了代码重用的所有优点,而没有继承的困惑(单个或多个)

关于java - 设计模式/多重继承解决方法java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240733/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com