假设我们正在制作一个解析器。一种实现可能是:
public sealed class Parser1
{
public string Parse(string text)
{
...
}
}
或者我们可以将文本传递给构造函数:
public sealed class Parser2
{
public Parser2(string text)
{
this.text = text;
}
public string Parse()
{
...
}
}
这两种情况的用法都很简单,但是与另一种情况相比,启用参数输入意味着什么?Parser1
当他们查看 API 时,我向其他程序员发送了什么信息?此外,在某些情况下是否有任何技术优势/劣势?
当我意识到接口在第二个实现中毫无意义时,另一个问题出现了:
public interface IParser
{
string Parse();
}
...第一个接口上的接口至少可以达到某种目的。这是否特别表示某个类是否“可接口”?