我开始对接口进行编程,并试图了解何时不必在接口上声明方法。
我的具体例子是,我有一些课
public class SomeClass : ISomeInterface
{
public void SomeInterfaceMethod()
{
if(doOtherStuff() == 1)
{
// do more stuff
}
}
protected int doOtherStuff()
{
return 1;
}
}
我如何知道界面上应该或不应该声明doOtherStuff
的时间?
我的假设是该方法不是与其他类通信所必需的。它的简单实现细节可以完成工作。
更具体地说,我有一个消息总线。我试图决定消息的处理程序是否应该是一个接口方法。
答案 0 :(得分:4)
那么,语义上是是ISomeInterface
? 做什么?
例如,假设您有一个界面:
public interface IDriveable
{
void Drive();
}
你会合理地期望任何实现此接口的东西都是你可以驱动的东西。但这可能是很多事情。
Car
可以实施IDriveable
。它还将有其他方法,例如进出汽车或填充汽油的方法。那些对只是"可驾车*的东西没有意义,它们只对汽车有意义。所以他们属于那里。 (或者可能在Car
实现的其他接口上。)
这不是技术问题,而是关于您正在构建的类型的自然语义的问题。 ISomeInterface
并没有真正告诉我应该做些什么,所以在这里使用起来有点过于习惯了。
如果某个成员适用于该接口,请将其放在该接口上。如果不是,请不要。这真的就是它。