Я собираюсь спросить, возможно, простой вопрос дизайна OO.Где создать реализацию интерфейса?
Представьте, что мы инвертировали зависимость между двумя конкретными классами (Foo и Hoo) с помощью интерфейса (IHoo), где Hoo реализует интерфейс, а Foo использует эту реализацию.
В этот момент я задавался вопросом, куда я должен приложить эту реализацию (Hoo) к ее клиенту (Foo). Очевидно, что если мы добавим Hoo в клиентский класс Foo, мы не изменим зависимость от времени компиляции (относительно зависимости от времени выполнения), и мы сделали лишь немного более модульный код, но не менее жестким.
Так что, возможно, мы связываем клиент и реализацию интерфейса в классе мастера (или более высокого уровня), таком как контроллер или так? Каким будет ваш подход?
Thx.
[metasyntactic variable] (https://en.wikipedia.org/wiki/Metasyntactic_variable), следующий за _foo_, обычно является _bar_. ;) – jaco0646
Как ответил @samoht, просто передайте Foo ссылку на экземпляр IHoo, который создается где-то в другом месте. http://www.jamesshore.com/Blog/Dependency-Injection-Demystified.html – Fuhrmanator
@Fuhrmanator Да, получил это :). – zgulser