gpt4 book ai didi

c# - 试图了解如何创建流畅的界面,以及何时使用它们

转载 作者:可可西里 更新时间:2023-11-01 07:45:58 25 4
gpt4 key购买 nike

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

接口(interface):

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com