gpt4 book ai didi

java - 有条件地继承类

转载 作者:行者123 更新时间:2023-12-01 14:35:01 25 4
gpt4 key购买 nike

我有以下类继承(A 是我的父类):

enter image description here

在某些情况下XY 需要一些额外的字段和方法。所以我基本上需要的是:

enter image description here

由于代码重复,我不想扩展 XY 来为它们的子类提供完全相同的字段和方法。
如何处理?唯一的解决方案是委托(delegate)吗?


更新:现实世界的例子:

我正在从不同的文件类型导入数据:

my_application.core:

public class ImportFile { // the "A"
protected final Path path;
}

public class CsvImportFile extends ImportFile { // the "X"
private final String delimiter;
}

public class FixedLengthImportFile extends ImportFile { // the "Y"
// nothing new
}

public class XmlImportFile extends ImportFile {
private final String root;
}

有时文件的第一行包含标题/标题而不是数据。所以这里有一个示例扩展,它允许为 csv 和固定长度的文件设置起始行:

my_application.extension.line_start:

public class ExtensionLineStartImportFile { // the "B"
protected final int lineStart;
// some methods
}

因此,如果用户选择使用扩展line_startCsvImportFileFixedLengthImportFile 应该获取ExtensionLineStartImportFile 的属性>.

侧节点:因为我有多个扩展,它们做不同的事情,而且这些扩展应该很容易添加到应用程序或从应用程序中删除,我不想将它们全部合并到“核心”中。

最佳答案

Factory pattern - 这是一个架构问题,这种模式应该是您问题的答案

关于java - 有条件地继承类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32822969/

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