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

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

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

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

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

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

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

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

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

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