[英]What pattern name is this?
关于以下样本模式,有人知道它的名称或创建者吗? 似乎是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;
}
}
我会这样做,以避免成员和方法具有相同名称的错误:
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");
过度使用方法链的缺点:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.