NЗависимые метрики от сборок - PullRequest
2 голосов
/ 10 июля 2009

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

1 Ответ

5 голосов
/ 03 августа 2009

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

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

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

...