Testing 代理的setter应该在接口中吗?

Testing 代理的setter应该在接口中吗?,testing,setter,Testing,Setter,这种设计有很多对象:接口和几个实现,以及通过组合使用几个对象。 例如: Foo实现IFoo,并有一个实现IBar的Bar对象 Foo也有一种注射Dependencie的立根法(IBar棒法) 我的问题是:setter不应该在接口中?(用于测试、模拟…我被卡住了!)如果您使用多态性,即在接口类型上调用setter,那么显然您需要在接口中使用它。或者使用setter注入将Bar注入Foo。在一个没有Bar就不能存在Foo的上下文中,使用构造函数注入Bar更合适 进一步阅读:在接口中使用setter只

这种设计有很多对象:接口和几个实现,以及通过组合使用几个对象。 例如: Foo实现IFoo,并有一个实现IBar的Bar对象 Foo也有一种注射Dependencie的立根法(IBar棒法)


我的问题是:setter不应该在接口中?(用于测试、模拟…我被卡住了!)

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

或者使用setter注入将Bar注入Foo。在一个没有Bar就不能存在Foo的上下文中,使用构造函数注入Bar更合适


进一步阅读:

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

是的,但正式开发人员不会这样做。我认为了解原因是明智的。(在添加setter之前)