0

我们有很多具有这种设计的对象:接口和几个实现,以及通过组合使用多个对象。示例: Foo 实现了 IFoo 并有一个 Bar 对象,该对象实现了 IBar Foo 也有一个用于注入依赖项的 setBar(IBar bar) 方法。

我的问题是:setter 不在界面中?(为了测试,嘲笑......我被卡住了!)

4

3 回答 3

1

在界面中有一个设置器只是为了模拟和测试是不好的。因此,您允许该接口的用户任意设置组件,即使该对象的属性在构造后可能不应该被修改。接口不应该揭示如何构造对象。

于 2009-05-21T19:24:47.433 回答
0

如果您使用多态性,即在接口类型上调用setter,那么显然您需要在接口中使用它。

于 2009-05-21T19:19:51.750 回答
0

使用 setter Injection 将 Bar 注入 Foo。在没有 Bar 的情况下 Foo 不能存在的情况下,将 Bar 注入构造函数会更合适。

进一步阅读:依赖注入的类型

于 2009-05-21T19:23:51.180 回答