gpt4 book ai didi

java - 代码重构帮助

转载 作者:行者123 更新时间:2023-12-02 04:25:54 25 4
gpt4 key购买 nike

我有一个这样的例子

class A {

A() {}
public C createC () {
...
}

}

class B {

B() {}
public C createC () {

}
}

A 和 B 的对象是基于 an 创建的

public enum D { ii, jj };

我看到代码到处都是,比如

D d; 

switch (d) {
case ii: (new A()).createC(); break;
case jj: (new B()).createC(); break;
};

如何避免到处都是开关盒?我明白代码不太清楚。

最佳答案

我倾向于将创建代码添加到枚举中。

enum D {
ii {
public void createC() { new A().createC(); }
},
jj {
public void createC() { new B().createC(); }
};

public abstract void createC();
}

然后您可以将开关替换为

d.createC();

话虽如此,我还会考虑将 createC 方法设为静态或将 createC 代码移至枚举,而不是将其保留在 A 和 B 类中。

如果将 A 和 B 中的 createC 方法设置为静态,则枚举将类似于

enum D {
ii {
public void createC() { A.createC(); }
},
jj {
public void createC() { B.createC(); }
};

public abstract void createC();
}

关于java - 代码重构帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3964419/

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