Вопрос

Пытаетесь ли вы сохранить Расстояние от главной последовательности низкий уровень для каждой сборки?Как насчет сборок, содержащих только определения бизнес-объектов?Возможно ли держать их подальше от Зона боли?Типы в таких сборках обычно используются другими сборками и довольно конкретны.Как справиться с такой ситуацией?

Это было полезно?

Решение

Я полагаю, что цель {поддержания "расстояния от основной последовательности" на низком уровне} основана на Закон Деметры.Следование этому правилу помогает сделать ваш код более понятным и удобным для модульного тестирования.Используя бизнес-объекты, которые являются простыми контейнерами данных, вы раскрываете больше состояний, чем может быть необходимо, и нарушаете правила инкапсуляции.

Однако, как Фаулер указывает в этой статье, "В то время как цепочки методов - это запах, противоположная проблема объектов посредников, раздутых методами пересылки, - это тоже запах.(Я всегда чувствовал, что мне было бы более комфортно с Законом Деметры, если бы он назывался Внушением Деметры.)"

Я думаю, что ценность таких базовых бизнес-объектов может быть полезна, если вы хотите передать только то, "что" содержит объект, например, как они используются в качестве объектов передачи данных.Однако, вероятно, важно отличать ваши настоящие бизнес-объекты от ваших пустых объектов передачи данных.Я бы предположил, что реальные бизнес-объекты также должны содержать поведение наряду с данными, которые они инкапсулируют.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top