gpt4 book ai didi

java - 重构java中常见的静态方法

转载 作者:行者123 更新时间:2023-12-01 10:36:41 24 4
gpt4 key购买 nike

考虑:

class C1 {
public static void doWork() {
// code fragment F1
doMoreWork();
// code fragment F2
}
private static void doMoreWork() {
// code fragment F3
}
}
class C2 {
public static void doWork() {
// code fragment F1
doMoreWork();
// code fragment F2
}
private static void doMoreWork() {
// code fragment F4
}
}

请注意,C1C2 中的 doMoreWork 具有不同的代码,但中的代码C1C2 中的 doWork() 是相同的。

如何重构该类结构,以便调用 C1.doWork()C2.doWork() 的行为与上面相同,但 doWork 的代码() 不重复?

编辑:请注意,重构后方法必须是静态的。此外,片段 F1 和 F2 实际上是可能具有一个或多个开放上下文的代码片段——例如片段 F1 打开一个“{”,结束的“}”位于片段 F2 中。

最佳答案

您可以创建另一个类 C,其中包含您不想重复的代码。

class C {
public static void f1() { /* code fragment F1 */ }
public static void f2() { /* code fragment F2 */ }
}

然后您可以从C1C2调用C的方法。

class C1 {
public static void doWork() {
C.f1();
doMoreWork();
C.f2();
}
private static void doMoreWork() {
// code fragment F3
}
}
class C2 {
public static void doWork() {
C.f1();
doMoreWork();
C.f2();
}
private static void doMoreWork() {
// code fragment F4
}
}

关于java - 重构java中常见的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34667544/

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