每当我想在一个平凡的类中存根一个方法时,我最常提取一个接口。现在,如果该类的构造函数是公共的并且不是太复杂或不依赖于复杂类型,那么将相关方法设置为虚拟并继承将具有相同的效果。这比提取接口更可取吗?如果是这样,为什么?
编辑:
class Parser
{
public IDictionary<string, int> DoLengthyParseTask(Stream s)
{
// is slow even with using memory stream
}
}
有两种方法:提取接口或使方法虚拟化。我实际上更喜欢接口,但这可能会导致IParser
Parser
元组爆炸......