您链接同一对象的方法结果的设计模式的名称是什么?

时间:2017-07-22 02:46:54

标签: java design-patterns

我已经看过这种设计模式,我无法记住这个名字:

class Number {
  private int myNumber;
  public Number(int arg) {this.myNumber = arg;}
  public Number add (int arg) {return new Number(myNumber + arg);}
  public Number subtract (int arg) {return new Number(myNumber - arg);}
}

所以你使用它的方式是:

Object result = (new Number(1)).add(2).subtract(1).add(3);

关键是你可以继续将方法结果链接在一起。

我的问题是:您链接同一对象的方法结果的设计模式的名称是什么?

2 个答案:

答案 0 :(得分:1)

我听说Fluent Interface。这在某些情况下更难调试,整个行动链可能被视为单一陈述,所以在我看来:不是一个好主意。

答案 1 :(得分:0)

仅仅调用链中类的方法并不能将其自身定义为模式。设计模式在设计级别进行记录,这些解决方案与实现无关。将存在其代码和UML图看起来相似的模式,但由于其不同的意图,它们代表不同模式的实现(例如,状态和策略)。但是在Builder模式中可以看到调用这样的链来构建具有许多可选参数的排列组合的对象的链。使用强制参数创建原始对象,并根据客户端的要求严格控制构建器重新配置原始对象,而不破坏封装。 "有效的Java:编程语言指南"作者Joshua Bloch已经在书中证明了这种Builder模式的有效使用。