栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Java中实现方法链接?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Java中实现方法链接?

让你的方法返回

this
如下:

public Dialog setMessage(String message){    //logic to set message    return this;}

这样,每次调用其中一个方法后,你将获得返回的同一对象,以便可以调用另一个方法。

当你要在对象上调用一系列方法时,此技术很有用:它减少了实现该方法所需的代码量,并允许你在方法链之后使用单个返回值。

减少显示对话框所需的代码量的一个示例是:

// Your Dialog has a method show() // You could show a dialog like this:new Dialog().setMessage("some message").setTitle("some title")).show();

使用单个返回值的示例为:

// In another class, you have a method showDialog(Dialog)// Thus you can do:showDialog(new Dialog().setMessage("some message").setTitle("some title"));

Dennis在对你的问题的评论中提到的使用Builder模式的示例:

new DialogBuilder().setMessage("some message").setTitle("some title").build().show();

使用构建器模式,你可以在构建对象之前为类的新实例设置所有参数(考虑具有final字段或对象的类,这些字段或对象在构建后设置值比在构建时设置值花费更多)。

在上面的示例中:

setMessage(String),setTitle(String)
属于
DialogBuilder
该类,并返回
DialogBuilder
它们被调用的相同实例;该
build()
方法属于
DialogBuilder
该类,但是返回一个
Dialog
对象,该对象
show()
属于
Dialog
该类。

额外

这可能与你的问题无关,但可能会帮助你和遇到此问题的其他人。

这对大多数用例都适用:在不涉及继承的所有用例中,以及在派生类没有添加要链接在一起的新方法并且对使用不感兴趣的新方法时,所有涉及继承的特定用例(无需强制转换) )方法链的结果作为派生对象。

如果要对派生类的对象进行方法链接,而派生类的对象在其基类中没有方法,或者希望方法链将对象返回为派生类的引用,则可以查看答案对于这个问题。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/451874.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号