如何创建一个流畅的界面,而不是一种更为传统的方法?这是一种传统方法:
界面:
interface IXmlDocumentFactory<T>
{
XmlDocument CreateXml() //serializes just the data
XmlDocument CreateXml(XmlSchema schema) //serializes data and includes schema
}
interface IXmlSchemaFactory<T>
{
XmlSchema CreateXmlSchema() //generates schema dynamically from type
}
用法:
var xmlDocFactory = new XmlDocumentFactory<Foo>(foo);
var xmlDocument = xmlDocFactory.CreateXml();
//or...
var xmlDocFactory = new XmlDocumentFactory<Foo>(foo);
var xmlSchemaFactory = new XmlSchemaFactory<Foo>();
var xmlDocument = xmlDocFactory.CreateXml(xmlSchemaFactory.CreateXmlSchema());
我想说:
var xmlDocument = new XmlDocumentFactory<Foo>(foo).CreateXml().IncludeSchema();
//or...
var xmlDocument = new XmlDocumentFacotry<Foo>(foo).CreateXml();
最后,这种情况是否适合流利的界面?还是更传统的方法更有意义?
最佳答案
使接口(interface)流畅的关键是确保所有方法都返回接口(interface)本身的实例,或者也实现了可以继续进行处理的接口(interface)的某些其他对象。
因此,在您的情况下,每个IXmlDocumentFactory方法都必须返回一个IXmlDocumentFactory,以便您可以继续调用。最后一种方法(如果有)返回您真正想要的类型?
它使代码可读性强,但是回馈检查仍然给了我一些帮助。您必须非常确保不能返回null,否则下一个“流利调用”将失败。
关于c# - 试图了解如何创建流畅的界面以及何时使用它们,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6138942/