Я знаю, что означает сцепление и сцепление.
я получил следующий пример, и он имеет некоторые проблемы ремонтопригодности и поэтому она нуждается в некотором рефакторинге:Пример сцепления и сцепления (Рефакторинг кода)
Проблема заключается в том, что я не мог коснуться любое сочетание, сцепления или любой другой вопрос, ремонтопригодности, кроме глобальных переменных. Как я могу реорганизовать следующий код без этого глобального вопроса переменных (поскольку глобальные переменные увеличивают сложность & увеличивает код негибкость ?!)
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);
}
ли это выглядит правильно? Или есть другой эффективный способ рефакторинга?
You переменная 'значение' одинакова в методе' hyp'. Рефакторизованный метод 'read' теперь ничего не делает, потому что он не мутирует никакого состояния и не возвращает ничего. Поэтому я думаю, вы бы реорганизовали его с вашим предложением на ошибки. Не могли бы вы предоставить, может быть, больше кода, как называется метод 'hyp'? Откуда берется его входное значение «значение»? – DrunkenPope
@DrunkenPope Да, действительно, я согласен с тем, что код не содержит достаточной информации о вызове методов, но именно так я нашел пример, изучая модульность кода. – Dee
@DrunkenPope На самом деле метод 'hyp()' не нуждается ни в каком входном параметре, я только что отредактировал его. – Dee