Я пытаюсь понять, какова ответственность на самом деле, поэтому я хочу использовать пример того, над чем я сейчас работаю. У меня есть приложение, которое импортирует информацию о продукте из одной системы в другую. Пользователь приложений выбирает различные параметры для полей продуктов в одной системе, которые хотят использовать в другой системе.Помогите понять принцип единой ответственности
Поэтому у меня есть класс, скажем ProductImporter, и он несет ответственность за импорт продуктов. Этот класс большой, вероятно, слишком большой.
Методы в этом классе являются сложными и будут, например, getDescription. Этот метод не просто захватывает описание из другой системы, но устанавливает описание продукта на основе различных настроек, заданных пользователем. Если бы я добавил параметр и новый способ получить описание, этот класс мог бы измениться.
Итак, это две обязанности? Есть ли тот, который импортирует продукты, и тот, который получает описание. Казалось бы, почти каждый метод, который у меня есть, будет в его собственном классе, и это кажется излишним.
Мне действительно нужно хорошее описание этого принципа, потому что мне трудно полностью понять. Я не хочу ненужной сложности.
Это «показывает недостаток дизайна», - Это проблема, что я не уверен, как исправить. Если метод описания принадлежит классу, и я должен учитывать каждое изменение в зависимости от различных параметров, как еще вы можете его создать. Я не вижу другого пути. – user204588
У вас может быть класс описания, ответственностью которого будет обработка вариации. И так далее, когда одна ответственность слишком велика, разделите ее на меньшие обязанности. –