Программирование интерфейса - PullRequest
3 голосов
/ 23 февраля 2011

Фон

Разработчик из моей команды внедрил приложение, которое я проверял.Он использовал интерфейсы везде.Приложение имеет типичный сервисный слой, слой данных и объекты POCO, передаваемые с веб-сайта в БД.

Предположение

IOC используется (через Unity) для внедрения конкретного класса Service и Data времени выполнения.Все POCO имеют только методы get и set для открытых свойств.

Вопрос

Я понимаю, почему интерфейс используется на уровне обслуживания и данных, но зачем использовать интерфейсы для всех объектов POCO?Это перебор?

Ответы [ 2 ]

4 голосов
/ 23 февраля 2011

Похоже, ваши POCO используются просто как Объекты передачи данных . Если это так, то они просто несут информацию, без какого-либо поведения. Создание интерфейсов для них излишне.

4 голосов
/ 23 февраля 2011

Служат ли интерфейсы POCO цели?Если да, они не могут быть излишними.Однако, если они не используются, они нарушают принцип YAGNI .

Однако в более общем плане я начинаю думать, что свойства на интерфейсах - это запахи дизайна, поскольку они нарушают Закон Деметры .

Я недавно опубликовал некоторые мысли о лучших абстракциях .

...