Java 这种图案叫什么名字,不受欢迎?
在Java中,我最近看到很多库中的类都有方法,这些方法总是返回类的实例,因此您可以调用多个方法,而不需要单独的代码行。例如:Java 这种图案叫什么名字,不受欢迎?,java,design-patterns,Java,Design Patterns,在Java中,我最近看到很多库中的类都有方法,这些方法总是返回类的实例,因此您可以调用多个方法,而不需要单独的代码行。例如: public class Resource{ public Resource path(String path) //execute some code return this; } 所以你可以这样做 new Resource.path("1").path("2").path("3") 而不是冗长的: 公共无效路径(字符串路径) 这个
public class Resource{
public Resource path(String path)
//execute some code
return this;
}
所以你可以这样做
new Resource.path("1").path("2").path("3")
而不是冗长的:
公共无效路径(字符串路径)
这个模式有名字吗?它是好的还是坏的做法?它被称为fluent接口模式 通常应用于生成器模式,也称为fluent builder 关于问题的第二部分: 优点:
可能还有一些方面我没有涉及,尽管它用于方法链接。+1,如果你涉及OP问题的第二部分,那就好了。:)我称之为方法链接的示例,但不一定是流畅的接口。请注意您链接的Martin Fowler文章中的这句话:“我还注意到一个常见的误解——许多人似乎将流畅的界面等同于方法链接。当然链接是流畅界面使用的一种常见技术,但真正的流畅性远不止于此。”是的,您是对的,这两个术语绝对密切相关,对我来说,“超过那个”意味着除了返回“这个”,你还有更多的自然语言来描述,比如建筑过程,而不是新的A().setB().setC()
Resource r = new Resource();
r.path("1");
r.path("2");
r.path("3");