如何创建一个流畅的界面,而不是一种更为传统的方法?这是一种传统方法:

界面:

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/

10-13 09:33