首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用方法链接构建对象的成语的名称是什么?

使用方法链接构建对象的成语的名称是什么?
EN

Software Engineering用户
提问于 2012-03-02 14:46:41
回答 3查看 12.4K关注 0票数 29

我经常使用一种模式,使用方法链设置一个对象,类似于BuilderPrototype模式,但不使用每个方法调用创建新对象,而是修改原始对象。

示例:

代码语言:javascript
复制
new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner");

只是想知道这个模式是否有名字,它是否被认为是反模式,因为虽然它可以更流畅地阅读,但它会导致长的方法链。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2012-03-02 14:50:15

Fluent接口

我一直听说这种方法被称为“fluent接口”,这是由Evans ( 领域驱动设计名声)和Martin ( 敏捷宣言名声)创造的。

主要的缺点是可读性(有些人喜欢它,有些人讨厌它),而且在某些情况下调试起来可能更困难,因为在逐步执行它时,整个操作链可能被认为是一个单一的语句。

我当然不认为它是反模式,虽然我自己也只使用过几次这种技术。

票数 42
EN

Software Engineering用户

发布于 2012-03-02 16:09:36

当链中有某种流或可发现性时,这种方法链接通常称为Fluent Interface。或者,您可以认为像jQuery这样的api严重依赖于方法链而不是“流利”,因为对可发现性的强调并不相同--更多的是为了方便。

对于您的示例(使用withx,withy),您可以考虑这是Builder模式的一个变体,因为您有一个特殊的类,给定一些状态(方法调用),它知道如何返回一个正确配置的对象。

如果使用得当,这不是反模式。

票数 6
EN

Software Engineering用户

发布于 2012-05-25 09:50:57

不管它是否被认为是反模式,

绝对不是反模式。jQuery可能是这方面最常用的实现。

因为虽然它能更流畅地阅读,但它会导致长的方法链。

是的,可以,但还有什么可选的呢?最后,您可以得到几乎一个简单的英语句子,使用api指导您找到可用的和合适的语句。

票数 3
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/137999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档