java - 这是重构太多了吗?

标签 java refactoring

我尝试重构一段代码,使其使用不同的方法进行一些计算。只是为了说清楚。

我想知道的是,写一个单独的方法来找出一个简单的东西,比如一个数字是奇数还是偶数,这是一个好的做法还是一个坏的做法 ?强>

原代码是,

    int n = 11;
    if (n % 2 == 0) {
        System.out.println("Not selected");
    } else {
        boolean isPrime = true;
        if (n == 0 || n == 1) {
            isPrime = false;
        } else {
            int i = 2;
            double a = Math.sqrt(Math.abs(n));
            while (i <= a) {
                if (n % i == 0) {
                    isPrime = false;
                }
                ++i;
            }
        } 
        if(isPrime){
            System.out.println("Prime it is");
        }
    }

重构后的代码是,

    int n = 11;
    if (isEven(n)) {
        System.out.println("Not selected");
    } else { 
        if (isPrime(n)) {
            System.out.println("Prime it is");
        }
    }

public static boolean isEven(int n) {
    return n % 2 == 0 ? true : false;
}

public static boolean isPrime(int n){
    if(n==0 || n==1)return false;        
    int i=2;
    double a = Math.sqrt(Math.abs(n));
    while(i<=a){
        if(n%i==0){
            return false;
        }            
        ++i;
    }
    return true;
}

最佳答案

为了可读性、长度或圈复杂度等因素,将代码分解为单独的方法通常被认为是一种很好的做法,尤其是在您不更改代码的工作方式的情况下。

boolean 表达式,如您提取的内容,通常是快速提取函数重构的不错选择。它允许代码库的读者通过能够阅读描述性函数名称与复杂域相关的 boolean 数学来了解为什么 boolean 表达式很重要或它的作用,他们可能不关心复杂的细节。

一本关于 Java 代码组织最佳实践的好书是一本名为 Clean Code 的书。 .这是一本非常轻松愉快的读物,我会推荐它。

关于java - 这是重构太多了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31634762/

相关文章:

java - 在 Google map 中显示我当前的位置

java - Eclipse/Preferences/General/Editors/Text Editors/Annotations/中的“完全覆盖”和“无覆盖”代表什么?

java - Soap WebService 到 Soap Webservice 调用

c++ - C++ 中的单元测试

java - 如何在java框架中水平划分三等分

java - 阻止 Apache Camel 记录正在移动的文件的完整路径

.net - 您对 .NET 使用哪些重构工具?

c# - 如何重构程序代码?

java - 重构移动和提取方法、解析类及其引用的硬编码?

c# - 多次执行相同的 SQL 查询时重用 SqlCommand 是否更好?