Есть ли (с помощью инструмента) способ выполнить рефакторинг "метода перемещения" с использованием VS2015 и VisualAssist? - PullRequest
0 голосов
/ 04 октября 2018

Я нахожусь в процессе разрушения большого класса, который делает далеко много (иначе Объект Бога ) на более мелкие части.

Класс имеетуже был ранее - частично - разбит и теперь выглядит ( упрощенно ) следующим образом:

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 в классы, которые фактически хранят данные (и продолжают рефакторинг оттуда).

К сожалению, BigClass имеет (буквально) два класса типа dozend Holder и тысяча таких функций.Которые вызываются от двух до пятидесяти раз многими классами.И мне бы очень хотелось, чтобы все перемещения не выполнялись вручную.

Как уже упоминалось в заголовке, я работаю в C ++ с использованием Visual Studio 2015 (с расширением VisualAssist) - есть ли способ выполнитьэти рефакторинги полуавтоматическим / с помощью инструмента?

...