【发布时间】:2016-10-29 13:59:55
【问题描述】:
我要问一个也许很简单的 OO 设计问题。
想象一下,我们使用接口 (IHoo) 反转了两个具体类(Foo 和 Hoo)之间的依赖关系,其中 Hoo 实现了接口,而 Foo 使用了该实现。
那时,我想知道我应该在哪里将该实现( Hoo )附加到它的客户端( Foo )。显然,如果我们在客户端类 Foo 中添加 Hoo,那么我们并没有反转编译时依赖(相对于运行时依赖),我们只是做了一些更模块化的代码,而不是更严格的代码。
所以也许,我们将客户端和接口实现关联在一个主(或更高级别)类中,如控制器之类的?你的方法是什么?
谢谢。
【问题讨论】:
-
foo 后面的 metasyntactic variable 通常是 bar。 ;)
-
@samoht 已回答,只需将 Foo 传递给在其他地方创建的 IHoo 实例的引用。 jamesshore.com/Blog/Dependency-Injection-Demystified.html
-
@Fuhrmanator 是的,明白了:)。
标签: oop design-patterns interface solid-principles