Как мне разделить большие и раздутые классы на более мелкие?

У меня большой класс «Менеджер», который, я думаю, делает слишком много, но я не уверен, как разделить его на более логичные единицы.

Вообще говоря, класс в основном состоит из следующих методов:

class FooBarManager
{
  GetFooEntities();
  AddFooEntity(..);
  UpdateFooEntity(..);
  SubmitFooEntity(..);
  GetFooTypes();
  GetBarEntities();
}

Класс Manager является частью моей бизнес-логики и содержит экземпляр другого класса "Manager" на уровне доступа к данным, который содержит все операции CRUD для всех объектов.

У меня есть разные сущности, поступающие со слоя доступа к данным, и поэтому у меня есть конвертер вне класса Manager для преобразования сущностей данных в бизнес-сущности.

Причиной для классов менеджера было то, что я хотел иметь возможность смоделировать каждый из классов «Менеджера», когда я выполняю тестирование модулей. Каждый из классов менеджера теперь более 1000 loc и содержит 40-50 методов каждый. Я считаю их довольно раздутыми, и мне неудобно помещать всю логику доступа к данным в один класс. Что я должен делать по-другому?

Как мне их разделить, и есть ли какой-то конкретный шаблон дизайна, который я должен использовать?

Ответы на вопрос(4)

Ваш ответ на вопрос