当您创建一个接口并且知道您将依赖另一个接口时,您是否会将构造函数作为接口的一部分?
就我而言,我想创建
我可以向客户端提供一个 IClientReceiveRecorder,并收集所有网络流量以进行简短的测试会话。它可能只是包含字符串的集合。
一个 IEvaluator,可以获取收到的所有消息并实现我们想要测试的各种内容。例如,我可能有一个具体的求值器来测试所有字符串是否包含字母“c”。
我知道任何 IEvaluator 都需要 IClientReceiveRecorder 来获取要评估的消息。
所以,我看到了一些选择。
我做类似的事情吗
interface IEvaluator
{
IEvaluator(IClientReceiveRecorder);
void Evaluate();
}
它无法编译,所以我猜不会。
也许我会做类似的事情
interface IEvaluator
{
void Evaluate(IClientReceiveRecorder);
}
或者,我是否将其留给具体类在其构造函数中获取 IClientReceiveRecorder ?
直接的答案是将实现细节留给具体的类。
知道实施IEvaluator
将有一个依赖项IClientReceiveRecorder
是一个实现细节,不会包含在IEvaluator
界面。
如果您知道该接口将由另一个接口组成,您可以执行如下操作:
interface IEvaluator
{
IClientReceiveRecorder { get; set; }
void Evaluate();
}
如何填充该属性是实现细节,不应成为接口的一部分。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)