0
На рассмотрении

Запутался с разбиением класса

Павел Пачковский 5 years ago updated 5 years ago 2

Допустим есть класс "рабочий", он может строить и ломать. при этом строить он может тремя разными способами, есть так же методы которые могут относиться к строительству, но используются не всегда. Теперь представим что такая же ситуация с методами категории "ломать", т.е. тот же строитель может ломать разными способами , при этом еще пользоваться настроечными для "ломания" методами. Есть тагже общие методы, которые могут пригодится и для строительства и для ломания.... В итоге вся это каша находится в классе рабочий, получился своего рода такой функциональный, вспомогательный класс, и я не могу понять хорошо это или плохо, нужно ли выносить методы "ломания" и "строительства" в отдельные классы и потом внедрять эти классы в класс "рабочий", или просто создать отдельные классы типо "РабочийЛоматель" или "РабочийСтроитель". Может быть оставить всю эту кашу в классе "рабочий" или попытаться как то решить проблему средствами ООП. Подскажите пожалуйста решение, обычно очень много времени трачу на подобные проблемы. Незнаю как быть((

На рассмотрении

Здравствуйте, Павел!

Иногда в таких случаях, когда результат трудно предсказать, я либо отказываюсь от рефакторинга вовсе до тех пор пока "боль" не станет чётко выраженной, либо создаю отдельный бранч для изменений, провожу там рефакторинг, а затем смотрю что вышло в итоге — стоит ли овчинка выделки.

Хорошо, спасибо, я тоже пока решил оставить весь функционал в одном классе и подождать пока "заболит") трудно предсказать, как в дальнейшем будет производиться работа с классом, поэтому не могу выбрать окончательный вариант