问题标签 [fluent-interface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何让 Spring 接受流畅(非 void)的设置器?
我有一个 API,我正在把它变成一个内部 DSL。因此,我的 PoJos 中的大多数方法都返回对 this 的引用,这样我就可以声明式地将方法链接在一起(语法糖)。
我的 API 不依赖于 Spring,但我希望通过对零参数构造函数、getter 和 setter 的 PoJo 友好来使其“对 Spring 友好”。问题是当我有一个非 void 返回类型时,Spring 似乎没有检测到我的 setter 方法。
当将我的命令链接在一起时,返回类型非常方便,所以我不想破坏我的编程 API,只是为了与 Spring 注入兼容。
Spring 中是否有允许我使用非空设置器的设置?
克里斯
api - fluent API 与其他 API 有何不同?
我在学习 DSL 时遇到了流利的 API。
我在 fluent API 上进行了很多搜索……我可以得出的基本结论是,流畅的 API 使用方法链接来使代码流畅。
但我无法理解——在面向对象的语言中,我们总是可以创建一个对象并调用与之相关的方法。那么 fluent API 有什么不同呢?流畅的 API 还添加了哪些其他功能?
ruby - Ruby中的流利界面程序
我们制作了以下代码并尝试运行它。
我们面临的问题是
即使对象不同,也是一样的。我们观察到的是第二个对象,即“a”正在替换第一个对象的值,即“e”。输出结果是
但所需的输出是
谁能建议为什么会这样?它不会替换对象,因为对象 ID 不同..只有对象的值被替换。
php - PHP OOP:可链接对象?
我试图在 PHP 中找到关于可链接 OOP 对象的一个很好的介绍,但还没有任何好的结果。
这样的事情怎么能做到?
甚至:$this->className->add('1','value')->type('string')->doStuff();
非常感谢!
c# - C# 中的新样式
如今,流畅的 API 非常普遍。最近,我几乎在我使用的每个系统中都能找到它们。大多数情况下,它们增强了可读性,但有时它们将我锁定在不灵活的规范中,使理解他们构建的规范的运行时行为几乎是不可能的。关于如何创建良好的流畅 API 是否存在共识?使用 fluent API 表示结构或规范的最佳方式是什么?
我最近在NServiceBus配置类中的 fluent API 上注意到了这个新颖的变体:
它使用多个接口作为一种线性流畅的接口。我喜欢它,因为当我只尝试表示简单的需求时,它不会给我带来额外的代码和上下文的沉重负担。在简单的情况下就足够了。不过,我不认为它会扩展到复杂的规格。您如何看待接口的这种使用?
您在 C# 中使用了哪些其他新的习语?你在哪里使用它们?他们的优势是什么?你不会在哪里使用它们?另外,您如何衡量您正在考虑使用的成语的优势?
jquery - jQuery 方法链接是流畅编程的一个例子吗?
我对 JavaScript/jQuery 有点陌生,但是当我看到方法链接的例子时,我立刻就觉得很熟悉。其他接口(如 LINQ)执行类似的操作,其中一组方法的返回类型与它们操作的类型相同(TweetSharp 执行的操作非常相似)。这是流畅编程的一个例子吗?我读到的关于 jQuery 的大部分内容都说其他库已经“借用”了这种方法链接的想法——这个想法是否起源于 jQuery?
.net - 与普通的命令式方法调用相比,方法链接有什么优势?
查看来自 Telerik MVC 网格的示例代码:
现在,有什么比这样做更好的呢:
fluent-nhibernate - 使用 Fluent NHibernate Search 从搜索中排除对象的最佳方法
我有一个带有布尔属性的类。
我想从搜索结果中排除具有错误值的实例。
使用 Fluent NHibernate Search 的最佳方法是什么?
mocking - 针对方法链接或流畅的接口语法测试替身(模拟/存根)
我有正在测试的代码,基本上看起来像这样(具体代码对问题并不重要。它只是为了解释目的):
这使用方法链接(我正在寻找的解决方案也适用于流利的接口语法)。
我对仅针对这个特定示例寻找解决方案不感兴趣,我对解决更普遍的问题感兴趣。在这个例子中,我只想为 CreateCriteria 添加一个期望值。但是,如果我这样做,我会得到一个 NullReferenceException,即使我让 CreateCriteria 返回一个存根,因为 Add 方法返回 null。
我希望我的测试继续工作,即使附加方法被链接,或者 Add 方法被删除。
在使用方法链接时,是否有一个通用技巧可以将测试双打/预期调用的数量降低到我想要断言的那些?
我能想到的一个解决方案是制作一个 T4 模板,它枚举一个类型的所有方法,并创建一个存根,其期望给出不同的默认返回值。但我想知道是否有更简单的选择。
我正在使用 Rhino.Mocks,但一般的解决方案会更受欢迎。
php - PHP 方法链还是流利的接口?
我正在使用 PHP 5,并且听说了面向对象方法中的一个新功能,称为“方法链接”。究竟是什么?我该如何实施?