Сообщение Re[3]: Фасад доменной модели - это God-объект? от 21.05.2024 7:04
Изменено 21.05.2024 8:38 Буравчик
Re[3]: Фасад доменной модели - это God-объект?
Здравствуйте, zelenprog, Вы писали:
Z>Чтобы делегировать обработчику, фасад должен знать интерфейс этого обработчика.
Z>Если учесть, что слой бизнес-логики содержит не один, а много обработчиков, то получается, что фасад должен знать интерфейсы всех этих обработчиков.
Z>Значит, Фасад будет "знать" по сути всю бизнес-логику (то есть "зависеть" от всех обработчиков).
Не саму бизнес-логику, а только правила ее вызова.
Z>Это же и есть God-object.
Z>Что-то тут не так. А как же принцип разделения ответственности?
Вопрос терминологии. Легко обосновать, что это God-object. И так же легко притащить сюда SRP. Единственная ответственность: фасад предоставлет упрощенный интерфейс к системе (заворачивает систему в черный ящик)
Ответственность разделяют, чтобы снизить сложность системы.
Задай себе вопросы:
— этот класс облегчает работу с системой со стороны клиента (вызывающего кода)?
— с этим классом трудно разобраться, чтобы его исправлять?
Если ответы "да", то это полезный класс.
Z>Чтобы делегировать обработчику, фасад должен знать интерфейс этого обработчика.
Z>Если учесть, что слой бизнес-логики содержит не один, а много обработчиков, то получается, что фасад должен знать интерфейсы всех этих обработчиков.
Z>Значит, Фасад будет "знать" по сути всю бизнес-логику (то есть "зависеть" от всех обработчиков).
Не саму бизнес-логику, а только правила ее вызова.
Z>Это же и есть God-object.
Z>Что-то тут не так. А как же принцип разделения ответственности?
Вопрос терминологии. Легко обосновать, что это God-object. И так же легко притащить сюда SRP. Единственная ответственность: фасад предоставлет упрощенный интерфейс к системе (заворачивает систему в черный ящик)
Ответственность разделяют, чтобы снизить сложность системы.
Задай себе вопросы:
— этот класс облегчает работу с системой со стороны клиента (вызывающего кода)?
— с этим классом трудно разобраться, чтобы его исправлять?
Если ответы "да", то это полезный класс.
Re[3]: Фасад доменной модели - это God-объект?
Здравствуйте, zelenprog, Вы писали:
Z>Чтобы делегировать обработчику, фасад должен знать интерфейс этого обработчика.
Z>Если учесть, что слой бизнес-логики содержит не один, а много обработчиков, то получается, что фасад должен знать интерфейсы всех этих обработчиков.
Z>Значит, Фасад будет "знать" по сути всю бизнес-логику (то есть "зависеть" от всех обработчиков).
Не саму бизнес-логику, а только правила ее вызова.
Z>Это же и есть God-object.
Z>Что-то тут не так. А как же принцип разделения ответственности?
Вопрос терминологии. Легко обосновать, что это God-object. И так же легко притащить сюда SRP. Единственная ответственность: фасад предоставлет упрощенный интерфейс к системе (заворачивает систему в черный ящик)
Ответственность разделяют, чтобы снизить сложность системы.
Задай себе вопросы:
— этот класс облегчает работу с системой со стороны клиента (вызывающего кода)?
— с этим классом легко разобраться, чтобы его исправлять?
Если ответы "да", то это полезный класс.
Z>Чтобы делегировать обработчику, фасад должен знать интерфейс этого обработчика.
Z>Если учесть, что слой бизнес-логики содержит не один, а много обработчиков, то получается, что фасад должен знать интерфейсы всех этих обработчиков.
Z>Значит, Фасад будет "знать" по сути всю бизнес-логику (то есть "зависеть" от всех обработчиков).
Не саму бизнес-логику, а только правила ее вызова.
Z>Это же и есть God-object.
Z>Что-то тут не так. А как же принцип разделения ответственности?
Вопрос терминологии. Легко обосновать, что это God-object. И так же легко притащить сюда SRP. Единственная ответственность: фасад предоставлет упрощенный интерфейс к системе (заворачивает систему в черный ящик)
Ответственность разделяют, чтобы снизить сложность системы.
Задай себе вопросы:
— этот класс облегчает работу с системой со стороны клиента (вызывающего кода)?
— с этим классом легко разобраться, чтобы его исправлять?
Если ответы "да", то это полезный класс.