Как мне разделить большие и раздутые классы на более мелкие?
У меня есть большойМенеджер' класс, который, я думаю, делает слишком много, но я не уверен, как разделить его на более логичные единицы.
Вообще говоря, класс в основном состоит из следующих методов:
class FooBarManager { GetFooEntities(); AddFooEntity(..); UpdateFooEntity(..); SubmitFooEntity(..); GetFooTypes(); GetBarEntities(); }
Класс Manager является частью моей бизнес-логики и содержит экземпляр другого "Менеджер" класс на уровне доступа к данным, который содержит все операции CRUD для всех объектов.
У меня есть разные сущности, поступающие со слоя доступа к данным, и поэтому у меня есть конвертер вне класса Manager для преобразования сущностей данных в бизнес-сущности.
Причина, по которой уроки менеджера, заключалась в том, что я хотел быть способным высмеивать каждого изМенеджер" классы, когда я делаю юнит-тестирование. Каждый из классов менеджера теперь более 1000 loc и содержит 40-50 методов каждый. Я считаю их довольно раздутыми, и мне неудобно помещать всю логику доступа к данным в один класс. Что я должен делать по-другому?
Как мне их разделить, и есть ли какой-то конкретный шаблон дизайна, который я должен использовать?