gpt4 book ai didi

oop - "Fluent interfaces"维护调用链中的顺序

转载 作者:行者123 更新时间:2023-12-02 06:10:00 24 4
gpt4 key购买 nike

是否有一种优雅/方便的方式(无需创建许多“空”类或至少它们应该不会令人讨厌)来拥有在编译级别维持顺序的流畅界面。

流畅的界面: http://en.wikipedia.org/wiki/Fluent_interface

有一个允许这个编译的想法

var fluentConfig = new ConfigurationFluent().SetColor("blue")
.SetHeight(1)
.SetLength(2)
.SetDepth(3);

并拒绝这个

var fluentConfig = new ConfigurationFluent().SetLength(2)
.SetColor("blue")
.SetHeight(1)
.SetDepth(3);

最佳答案

链中的每个步骤都需要返回一个接口(interface)或类,该接口(interface)或类仅包含在当前步骤之后有效使用的方法。换句话说,如果 SetColor 必须先出现,ConfigurationFluent 应该只有一个 SetColor 方法。然后 SetColor 将返回一个只有 SetHeight 方法的对象,等等。

实际上,返回值可能都是 ConfigurationFluent 的同一个实例,但会转换为该类显式实现的不同接口(interface)。

关于oop - "Fluent interfaces"维护调用链中的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4269810/

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