Здравствуйте, Sinix, Вы писали:
S>Я бы не назвал такой подход правильным. Интерфейсы в первую очередь служат для описания ролей
Интерфейсы служат для изоляции контрактов в чистом виде. Чисто техническое решение, позволяющее избавится от проблем множественного наследования и кое каких еще. Способ использования — целиком и полностью зависит от конкретного дизайна.
S> ("ведёт себя как", эдакий типизированный duck-typing).
duck typing никак с типизированностью не конфликтует. К примеру, при наложении делегата на метод в дотнете имеем вполне себе классический, и при этом строго типизированный duck typing.
S>Классы — для описания сущностей ("является чем-то").
Ну да. Только стоит учесть, что сущностью в модели мы можем сделать что угодно, в том числе и роль.
S> Когда мы прячем информацию о сильной связанности в интерфейс, мы намекаем, что сильная связность нужна только для некоторых сценариев использования. Здесь налицо нарушение SRP и в таких случаях лучше вообще отказаться от двусторонней зависимости.
Сдается мне, он просто так специфично описал IoC.
... << RSDN@Home 1.2.0 alpha 5 rev. 1530 on Windows 7 6.1.7601.65536>>