У меня есть класс под названием FirstClass
, и у него есть один метод, который имеет более 100 строк. Теперь я пишу новый класс под названием SecondClass
, который имеет метод, который точно подобен методу в FirstClass
, за исключением одной строки.Рефакторинг. Копировать код вставки, когда код отличается только одной строкой
Я могу скопировать содержимое firstMethod()
и вставить его в secondMethod()
и просто изменить строку, которая отличается. Но мне это не кажется правильным.
Как я могу справиться с этой ситуацией без копирования/вставки кода?
FirstClass не может быть изменен.
public class FirstClass {
public void firstMethod() {
//100 lines of code
}
}
public class SecondClass {
public void secondMethod() {
// Copy/paste the content of firstMethod() from above?
}
}
100-строчный метод в большинстве случаев является плохим дизайном, поэтому не похоже, что вы первыми сделаете что-то, что не является оптимальным в этой кодовой базе. – Kayaman
Хотя я согласен с @Kayaman, это не значит, что вы должны быть рядом с добавлением неоптимального кода. Похоже, что какой-то рефакторинг в порядке. – cjstehno
Почему нельзя изменить «FirstClass»? Является ли это частью сторонней библиотеки? – cjstehno