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();
}
}
}
在客户端类具体的方法,在方法链中使用时我的“测试”实例仅限于只是的Init()和方法3()方法,但所有方法都可以访问。我如何使用接口来限制当我希望我的客户端使用方法链时可访问的方法?使用的接口,以暴露的方法中的链
我还要提到的,有可能是另一个接口,仅公开另一组的具体方法:
public interface InterfaceTest2
{
InterfaceTestBuilder Init();
InterfaceTestBuilder Method1();
}
你以前见过吗? AFAIK这是不可能的。您可以返回不同的类型,然后可以从返回类型链接在一起,但接口是一个公共(或内部)可见合同 –
我以前没有见过这种情况,但我已经实现了一个方法链接构建器,并希望一个接口将是一个更清洁的实现来揭示基于某些条件/场景的方法。我可以通过将我的InterfaceTestBuilder传递给另一个类来使用不同的模式,并通过该类只公开我希望调用者使用的方法。谢谢! – Nventex