Я перерабатываю некоторый код, чтобы использовать полиморфизм, а не условные обозначения. Я хочу заменить два метода ниже на один, переопределенный метод, называемый «transferData», а затем два подкласса - «Uploader» и «Downloader» с «transferData» в качестве метода вызова.Рефакторинг для подклассов - как объединить методы экземпляра?
public class Example {
int direction;
public Example(int direction) {
this.direction = direction;
}
public void upload() {
}
public void download() {
}
}
Какой автоматический рефакторинг можно сделать, чтобы свести к минимуму количество ручных изменений, которые мне нужно выполнить? До сих пор у меня есть:
- Введенный фабричный метод (с использованием автоматизированных средств рефакторинга в Eclipse)
- создал «Downloader» подкласс и переопределить конструктор.
Каков наилучший способ обернуть эти вызовы методов, соответствующим образом обновив существующие сайты вызовов, не нарушив весь мой существующий код и тесты?
Дайте как можно больше информации о вашем примере. Ваша проблема проста, как вы ее описываете? Всего 2 метода void без параметров, не влияющих на аргументы класса? – nelly
Сложность больше в конструкторе - в настоящее время существует конструктор, который берет направление передачи. На сайтах вызовов вызывающий абонент вызывает вызовы .upload() или .download(), которые являются как недействительными, так и без аргументов. –
Итак, для чего вам нужен инструмент рефакторинга? 'abstract class Example {... abstract void action();}, class Uploader {public void action() {}}, class Downloader {public void action() {}}' – nelly