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();
}