2009-07-10 3 views
2

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

ответ

5

Я полагаю, что цель {сохранения «расстояния от основной последовательности» низкая) основана на Law of Demeter. Следуя этому правилу, ваш код легче понять и упростить модульный тест. Используя Business Objects, которые являются просто контейнерами данных, вы подвергаете большему количеству состояний, чем это может быть необходимо, и нарушаете правила инкапсуляции.

Однако, как Фаулер points out in this article: «В то время как цепи методов являются запахом, противоположная проблема объектов среднего возраста, раздутая с помощью методов пересылки, также является запахом. (Я всегда чувствовал, что мне будет более комфортно соблюдать Закон Demeter, если бы это было названо предложением Demeter.) «

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

 Смежные вопросы

  • Нет связанных вопросов^_^