Я нахожусь в процессе разрушения большого класса, который делает далеко слишком много (иначе Бог Объект) на более мелкие части.
Класс уже ранее был — частично — разбит и теперь выглядит (упрощенный) как это:
class FooHolder {
friend class BigClass;
private:
int foo_A;
int foo_B;
//...
}
class BarHolder {
friend class BigClass;
private:
bool bar_A;
bool bar_B;
//...
}
class BigClass {
public:
int getFoo_A() { return m_FooHolder.foo_A; };
int getFoo_B() { return m_FooHolder.foo_B; };
//...
bool getBar_A() { return m_BarHolder.bar_A; };
bool getBar_B() { return m_BarHolder.bar_B; };
//...
private:
FooHolder m_FooHolder;
BarHolder m_BarHolder;
}
Поэтому следующим логическим шагом было бы добавить функции доступа (в BigClass) для FooHolder
а также BarHolder
а также переехать все эти другие функции из BigClass
в классы, которые фактически содержат данные (и продолжают рефакторинг оттуда).
Unfortuately BigClass
имеет (буквально) два дозенд Holder
классы типов и тысячи этих функций. Которые называются от двух до пятидесяти раз многими классами. И мне бы очень хотелось, чтобы все движения не выполнялись вручную.
Как уже упоминалось в заголовке, я работаю в C ++ с использованием Visual Studio 2015 (с расширением VisualAssist) — есть ли способ выполнить эти рефакторинги полуавтоматическим / с помощью инструмента?
Задача ещё не решена.
Других решений пока нет …