我开始针对接口(interface)进行编程,并试图了解何时不需要在接口(interface)上声明方法。
我的具体例子是,我有一些课
public class SomeClass : ISomeInterface
{
public void SomeInterfaceMethod()
{
if(doOtherStuff() == 1)
{
// do more stuff
}
}
protected int doOtherStuff()
{
return 1;
}
}
我怎么知道什么时候应该或不应该在接口(interface)上声明 doOtherStuff
?
我的假设是当该方法不需要与其他类通信时。它只是完成工作的实现细节。
更具体地说,我有一个消息总线。我正在尝试确定消息的处理程序是否应该是接口(interface)方法。
最佳答案
嗯,从语义上讲,什么是 ISomeInterface
?它做什么?
例如,假设你有一个接口(interface):
public interface IDriveable
{
void Drive();
}
您有理由期望任何实现此接口(interface)的东西都是您可以驱动的。但这可能是很多事情。
Car
可以实现IDriveable
。它还会有其他方法,例如进出汽车或给汽车加气的方法。这些对于只是“可驾驶*”的东西没有意义,它们只对汽车有意义。所以它们属于那里。(或者可能在 Car
实现的其他接口(interface)上.)
这不是技术问题,而是关于您正在构建的类型的自然语义的问题。 ISomeInterface
并没有真正告诉我它应该做什么,所以在这里使用它有点做作。
如果某个成员适用于接口(interface),则将其放在接口(interface)上。如果不是,请不要。仅此而已。
关于c# - 针对接口(interface) : When not to declare methods as interface methods? 进行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37354094/