什么是这种模式的名称,并且不赞成?

时间:2014-01-07 17:15:09

标签: 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 void path(String path)

Resource r = new Resource();
r.path("1");
r.path("2");
r.path("3");

这种模式是否有名称,是好/坏的做法?

1 个答案:

答案 0 :(得分:10)

它被称为流畅的界面模式。

经常应用于构建器模式,也就是流利的构建器。

http://www.martinfowler.com/bliki/FluentInterface.html

关于问题的第二部分:

优点:

  1. 代码可读性和简洁性 - 它反映了代码的真实含义 确实像DSL
  2. 缺点:

    1. debuging的问题
    2. 记录问题
    3. 上面链接中提到的命令查询分离被破坏
    4. 更多信息:http://en.wikipedia.org/wiki/Fluent_interface

      这可能是我未涵盖的更多方面