gpt4 book ai didi

java - 如何停止为 Java 中的不同类创建相同的方法

转载 作者:行者123 更新时间:2023-11-29 07:01:51 25 4
gpt4 key购买 nike

我目前是一名学习 Java 的学生,没有学习任何 OO 设计原则。我想修改现有的类组:MathEditor、OCREditor、DataEditor、ParameterEditor。

我掌握了继承等知识。但是,这些类中的每一个都继承了不同的父类。例如 MathEditor 继承 Math 类,OCREditor 继承 OCR 类。我想向所有四个类添加一个名为 changeName 的方法。 changeName 中的代码完全相同。我应该创建一个接口(interface)并让这四个类实现它吗?或者我应该只是复制/粘贴 changeName 并手动将其添加到每个类中(我觉得这不太好)。

我很困惑,我不想修改太多代码并创建太多类,因为我正在修改现有代码库。

最佳答案

如果您不能让它们从同一父级继承,则通过组合进行增强。创建一个类,可能称为具有 changeName 方法的 EditorAssistant,让您的类都继承同样具有 changeName 方法的相同接口(interface),并将助手的方法作为委托(delegate)调用。

例如:

interface Editable {
void changeName(String name);

String getName();
}

class EditorAssistant implements Editable {
private String name = "";

@Override
public void changeName(String name) {
this.name = name;
}

@Override
public String getName() {
return name;
}
}

class SomethingEditor implements Editable {
private EditorAssistant assistant = new EditorAssistant();

@Override
public void changeName(String name) {
assistant.changeName(name);
}

@Override
public String getName() {
return assistant.getName();
}
}

class SomeOtherEditor implements Editable {
private EditorAssistant assistant = new EditorAssistant();

@Override
public void changeName(String name) {
assistant.changeName(name);
}

@Override
public String getName() {
return assistant.getName();
}
}

不可否认,这是一个微不足道的例子,但它可以很好地扩展。

关于java - 如何停止为 Java 中的不同类创建相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24718938/

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