Это вопрос C #, но на самом деле он может не зависеть от языка
Я унаследовал большую объектную модель (более 100 типов) с иерархией объектов, которые «владеют» 0..n другими типизированными объектами, которые имеют общую базу (где существует «относительно» иерархия строгих типов) .
Я хочу начать разъединение этих объектов через наследование, чтобы собрать систему на основе IoC, чтобы начать реализовывать некоторые модульные тесты с большей глубиной, чем в настоящее время.
С чего бы начать лучше?
Я могу начать с вершины иерархии, которая довольно проста, но будет иметь наименьшее начальное преимущество, и будет довольно запутанной, пока я не буду продвигаться дальше по цепочке, но это потребует от меня реализации нескольких обрывов на базовый объект для перегрузки сигнатур функций для принятия базовых интерфейсов, пока я не получу полное покрытие.
Я мог бы начать с нижней части иерархии, что было бы намного хитрее, поскольку там гораздо больше взаимодействия между классами, но это «заставило бы» нас более целостно взглянуть на рефакторинг.
Я также мог бы начать с базовых объектов (тех, от которых наследуются все объекты), которые запустили бы процесс в логической точке, но почти наверняка создали бы некомпилируемое приложение, пока мы не получим выгружать все наследования объектов и вызовы функций.
Есть мысли?