namespace ScratchPad
{
public class InterfaceTestBuilder : InterfaceTest1
{
public InterfaceTestBuilder Init()
{
return this;
}
public InterfaceTestBuilder Method1()
{
return this;
}
public InterfaceTestBuilder Method2()
{
return this;
}
public InterfaceTestBuilder Method3()
{
return this;
}
}
public interface InterfaceTest1
{
InterfaceTestBuilder Init();
InterfaceTestBuilder Method3();
}
public class Client
{
public void TestMethod1()
{
InterfaceTest1 test = new InterfaceTestBuilder();
test.Init();
test.Method3();
test.Init().Method1().Method2().Method3();
}
}
}
Client クラスでは、私の「テスト」インスタンスは Init() メソッドと Method3() メソッドだけに制限されていますが、メソッド チェーンで使用すると、すべてのメソッドにアクセスできます。クライアントにメソッド チェーンを使用させたい場合に、インターフェイスを使用してアクセスできるメソッドを制限するにはどうすればよいですか?
また、特定のメソッドの別のセットのみを公開する別のインターフェイスが存在する可能性があることにも言及する必要があります。
public interface InterfaceTest2
{
InterfaceTestBuilder Init();
InterfaceTestBuilder Method1();
}