Задать вопрос
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++

Правильно ли я понял принцип одной обязанности в классе?

Читая книгу Фриман и Фриман. Паттерны проектирования увидел прикольный принцип: «Класс должен иметь только одну причину для изменения» это стр. 361 в книге.

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

Возьмем к примеру простейший класс:
class CustomFormat
{
public:
  Header1 getHeader1();
  std::vector<Header2> getHeader2Array();
  void load();
  void save();  
};


Мне кажется что основной задачей класса является предоставление методов для работы со значениями заголовков. Но он также имеет и дополнительную задачу: класс имеет методы по чтению\записи.

Вопрос: Я правильно понимаю, что если следовать этому принципу, то мы должны методы load\save вынести в другой класс к примеру в какой-нить CustomFormatSerializer?

Меня не интересуют слова вида: «Вы знаете на практике… ». Меня очень волнует именно вопрос следования этому принципу, а не возможные компромиссы для достижения задач на практичеке.
  • Вопрос задан
  • 2853 просмотра
Подписаться 3 Оценить 2 комментария
Ответ пользователя Анатолий К ответам на вопрос (5)