gpt4 book ai didi

java - 重构: Removing flags

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

我有一个 Java 类,例如:

public class className{
public static void methodName(Object atr1, Object atr2, Object atr3, boolean flag){
//Code here ...

if(flag){
executeASingleInstruction();
}

//Code here ...
}
}

我知道使用标志参数是一种不好的味道,我想知道是否可以重构此方法以删除标志参数,或者是否最好保持此方法现在的方式。

最佳答案

请注意,代码中还有更多需要考虑重构的内容,但这里我将只关注 boolean 参数气味。

您可以通过拆分方法并决定在调用位置使用哪一个新方法来重构它。

这将使您在调用任一方法时的意图更加清晰,特别是如果它们具有漂亮的描述性名称。

如果我没记错的话,Robert C. Martin 的书中有一个关于它的章节:Clean Code: A Handbook of Agile Software Craftsmanship

public class className{
public static void methodName1(Object atr1, Object atr2, Object atr3){
encapsulation1(atr1, atr2, atr3);
executeASingleInstruction();
encapsulation2(atr1, atr2, atr3);
}


public static void methodName2(Object atr1, Object atr2, Object atr3){
encapsulation1(atr1, atr2, atr3);
// no execution of aforementioned instruction
encapsulation2(atr1, atr2, atr3);
}
}

关于java - 重构: Removing flags,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27943988/

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