java - 耦合和内聚示例(重构代码)

标签 java software-design coupling cohesion

我知道耦合和内聚是什么意思。
我有以下示例,它存在一些可维护性问题,因此需要一些重构:

问题是,除了全局变量之外,我无法关联任何耦合、内聚或任何其他可维护性问题。如何在没有全局变量问题的情况下重构以下代码(因为全局变量会增加复杂性并增加代码的灵活性?!)

double value;
double min, max;

public void read()
{
    do 
    {
        value = ConsoleInput.readDouble();
    }
    while(value < min || value > max);
}

public double hyp()
{
    double x, y;
    min = 0.0;
    max = 100.0;
    read();
    x = value;
    read();
    y = value;
    return Math.sqrt(x * x + y * y);
 }

我想重构如下:

public void read()
{
    double value;
    double min = 0.0;
    double max = 100.0;

    do 
    {
        value = ConsoleInput.readDouble();
    }
    while(value < min || value > max);
}

public double hyp()
{
    double x, y;
    read();
    x = value;
    read();
    y = value;
    return Math.sqrt(x * x + y * y);
 }

这看起来合适吗?或者还有其他有效的重构方法吗?

最佳答案

重构您的 read() 方法,如下所示:

public double read(double min, double max)

因此,您不是将值保存在全局中,而是从函数中返回它

关于java - 耦合和内聚示例(重构代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30484110/

相关文章:

java - 将镜像快速启动 Java 项目上传到 App Engine :

java - 直方图是颠倒的

java - 如何创建一个 java.sql.Array 字符串?

mysql - 我应该使用网站表单还是DIY表单程序作为MySQL前端?

uml - 动物可以成为用例图中的 Actor 吗?

variables - 将伴侣(婴儿)变量的值复制到原始(母亲)

java - 使用 localhost VM 创建的 ActiveMQ 不会创建 JMX Bean

c - 返回数组的安全性

mvvm - 如何保持不同的 View 与 MVVM 解耦

c# - 减少状态模式中的耦合