lucian.pantelimon 2024-04-08
public class Dialog {
public Dialog() {
}
public void setTitle(String title) {
//Logic to set title in dialog
}
public void setMessage(String message) {
//Logic to set message
}
public void setPositiveButton() {
//Logic to send button
}
}
让你的方法返回 this,例如:
public Dialog setMessage(String message) {
// 设置消息的逻辑
return this;
}
通过这种方式,每次调用其中一个方法后,都会返回同一个对象,从而可以继续调用该对象上的其他方法。
当你需要对一个对象连续调用多个方法时,这种技巧非常有用:它减少了所需的代码量,并允许你在方法链结束后获得一个单一的返回值。
减少代码量的示例
假设你的 Dialog 类有一个 show() 方法,你可以这样显示一个对话框:
new Dialog().setMessage("some message").setTitle("some title").show();
使用单一返回值的示例
假设在另一个类中,你有一个方法 showDialog(Dialog),那么你可以这样调用:
showDialog(new Dialog().setMessage("some message").setTitle("some title"));
构建器(Builder)模式示例
正如 Dennis 在你问题的评论中提到的构建器模式:
new DialogBuilder()
.setMessage("some message")
.setTitle("some title")
.build()
.show();
构建器模式允许你在构建类的新实例之前设置所有参数(尤其适用于包含 final 字段的类,或在对象创建后再设置某些值代价较高的情况)。
在上面的例子中:
setMessage(String)和setTitle(String)属于DialogBuilder类,并返回调用它们的同一个DialogBuilder实例;build()方法也属于DialogBuilder类,但它返回一个Dialog对象;show()方法则属于Dialog类。