关于以下示例中的模式,有人知道它的名称或创建者吗?似乎是GoF提出的Builder的一种变体。(https://en.wikipedia.org/wiki/Builder_pattern#Java)
我认为它以更少的代码实现了GoF模式的主要目标。我在某个框架中看到并开始大量使用它,但找不到它的发起者。 感谢您的帮助。
public class User {
private String name;
public User name(String name) {
setName(name);
return this;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
答案 0 :(得分:0)
我会这样做,以避免成员和方法名称相同的错误:
public class User {
private String name;
public String getName() {
return name;
}
public User setName(String name) {
this.name = name;
return this;
}
}
User user = (new User()).setName('Me').setPhone('1234');
似乎模式的名称是“流利接口”,而“方法链接”称为其链接方法的实现。实际上,他们描述的是同一件事,但是“流畅接口”是该模式通常接受的名称。
您可以链接更多的方法(不仅用于设置属性),包括不同的对象:
user.addBall(ball)
.inflateAllBalls()
.getFirstBall() // returns a ball
.roll() // roll is a method in the Ball class
.setColor("red");
过度使用方法链的弊端: