パーサーを作っているとしましょう。1 つの実装は次のようになります。
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 を見たとき、私はどのようなメッセージを送りましたか? また、特定の場合に技術的な利点/欠点はありますか?
2 番目の実装ではインターフェイスがまったく無意味であることに気付いたときに、別の質問が発生します。
public interface IParser
{
string Parse();
}
...最初のインターフェイスのインターフェイスは、少なくとも何らかの目的を果たすことができます。それは、クラスが「インターフェース可能」であるかどうか、特に何かを意味しますか?