![]() |
1
0
Martin Fowler将此主题作为“流畅的界面”在 http://www.martinfowler.com/bliki/FluentInterface.html . 一个主要问题是,Fluent接口是为人类设计的,因此像Spring这样的框架无法理解它们。简单地使用一个流畅的接口在某种意义上提供了可维护性(可读性),但在另一个意义上却失去了可维护性(灵活性)。 |
![]() |
2
3
在我看来,调试是很痛苦的,因为您往往没有用于检查的中介变量。 |
![]() |
3
2
可链接方法和继承有一个常见的问题。假设您有一个类C,其方法f1()、f2()等返回一个c。当您从c派生类d时,您希望方法f1、f2等现在返回一个d,这样D的可链接方法就可以在链中的任何位置调用。 |
![]() |
4
1
我也很喜欢这种方法。我能想到的唯一缺点是,在每个方法的末尾“返回这个”有时似乎有点尴尬。例如,对于jquery,允许插件有些尴尬,因为您必须说“确保不要忘记您的退货!但是在编译时没有好的方法来捕获它。 |
![]() |
5
1
唯一的缺点是松动了返回类型,所以链接对于执行操作很好,但对于计算操作不好。 另一个问题是,对于链接,编译器不能像确定内联的简单函数调用那样容易。但正如我所说的,如果您的链接执行操作,而不是计算,那么编译器很可能不会以任何方式更改任何内容。 |
![]() |
6
0
javascript是(或多或少)一种功能性语言,具有一流公民的功能。
另一方面,Java是严格的OO,函数不能存在于类之外。使用继承、组合和接口是这种语言更自然的方式。 |
![]() |
7
0
在我们的设计工具包中,可链接方法是另一个很好的工具。只要确保你不会碰到“我有锤子,所以每个问题都是钉子”的设计混乱。 每一个设计问题都不能用链式方法来解决。有时它确实有助于使界面更易于使用(例如,您提到的收集问题)。有时候不是,关键在于找出哪种情况适用。 |
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 7 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 7 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |