C# 中的 Fluent Interface 设计模式2025年2月5日 | 阅读5分钟 关于流式接口设计模式?通过在 C# 中使用流式接口设计模式,可以实现面向对象的 API,从而使代码更易于阅读和理解。这种模式经常涉及方法链(method chaining),其中通过将相同的上下文对象返回给每个函数,可以在单行代码中调用多个命令或操作。 使代码更具可读性,并赋予客户端代码类似于领域特定语言的外观,这是流式接口模式的主要目标。流式接口设计模式的主要目标是使用点(.)将多个属性(或操作)附加到对象上。 实施让我们通过一个例子来更好地理解如何在 C# 中实现流式接口设计模式。 ![]() 假设存在以下员工类。通常,如果我们想使用它,我们会像下面这样创建一个员工类的实例并添加相应的值。 ![]() 我们的对象使用代码通过流式接口得到了简化、提高了可读性和可发现性。创建这类接口相当于说出一种句子,能够简化和提高类使用代码的可读性。 ![]() 在 C# 中,我们有一个名为方法链(Method Chaining)的特性,它有助于我们实现这一点。 C# 中的方法链是什么?在 C# 中,方法链是一种流行的方法,其中可以组合多个方法来生成一个语句,每个方法都返回一个对象。如下所示,为此,我们必须首先在员工类周围创建一个包装器类。 ![]() 在这里,正如您所见,我们为每个属性都创建了方法。请注意,方法的返回值设置为 Fluentemployee。现在,客户端将使用上述接口之上的流式接口。因此,在上述 Fluentemployee 类到位后,客户端代码应该如下所示。 ![]() 使用 C# 实现流式接口设计模式的示例让我们通过在 C# 中使用流式接口设计模式来实践我们到目前为止所讨论的一切。需要将以下代码复制并粘贴到首先需要创建的 employee.cs 类文件中。这个类很简单,功能很少。目标是使用方法链来设置这些属性值。 创建包装器我们将使用这个作为我们的包装器类。在这里,我们为每个员工类字段开发了相应的方法,并使用这些方法来设置员工对象的属性值。 同样重要的是要注意,每个方法(ShowDetails 除外)都返回一个 Fluentemployee 类型。我们可以使用点运算符一个接一个地调用 Fluentemployee 类的方法(ShowDetails 除外),因为这种返回类型(返回 Fluentemployee 实例)允许这样做。 ShowDetails 方法显示值;它不用于设置它们。 在客户端代码中使用包装器在我们的例子中,客户端将是 Programme 类。因此,使用点(.)运算符——这仅仅是方法链——我们必须从 Client 构建一个 Fluentemployee 类的实例,并依次调用每个方法。因此,对 Programme 类的主函数进行以下更改。 流式接口的优点
何时使用?C# 流式接口设计模式在以下情况下非常有用:
C# 中流式接口设计模式的实际示例C# 中流式接口设计模式的实际示例:Automapper Automapper 是一个在 .Net 应用程序中用于映射对象的库。它以拥有清晰、易读的配置和流式用户界面而闻名。以下是如何以流式方式配置和使用 Automapper 的示例:首先,安装 Automapper 包,可通过 NuGet 获取。 C# 中流式接口设计模式的实际示例:用于 API 请求的 RestSharp让我们研究一下著名的 RestSharp 库来理解另一个实际示例。它利用流式接口范例,以可读且富有表现力的方式创建和执行 REST 请求。组织库:首先,确保已安装 RestSharp NuGet 包。 结论总而言之,通过将方法调用链接在一起,C# 中的流式接口设计模式提供了一种简洁而富有表现力的方式来与设备通信。通过从每个方法返回当前对象实例(this),开发人员可以轻松地链接多个方法调用,从而提高代码的可读性和直观性。 当需要设置或配置对象的多个属性时,此模式非常有用。它通过以一种更易于阅读且更像自然语言句子的方式来组织代码来实现这一点。但是,谨慎使用流式接口方法至关重要。过度使用可能导致代码难以阅读和过于复杂。 下一个主题如何使用 C# 中的闭包 |
我们请求您订阅我们的新闻通讯以获取最新更新。