Java “的目的”;加上;课堂教学方法

Java “的目的”;加上;课堂教学方法,java,Java,我正在看一个名为Product的类,它包括以下内容: @JsonProperty("name") public void setName(String name) { this.name = name; } public Product withName(String name) { this.name = name; return this; } withName方法的用途是什么?它是如何使用的?为什么不干脆做: Product p = new Product();

我正在看一个名为Product的类,它包括以下内容:

@JsonProperty("name")
public void setName(String name) {
    this.name = name;
}

public Product withName(String name) {
    this.name = name;
    return this;
}
withName方法的用途是什么?它是如何使用的?为什么不干脆做:

Product p = new Product();
p.setName("foo");

主要区别在于
with
方法返回调用对象的实例

这允许像这样的“流畅”通话

 someProductBuilder.withName("bla").withPrice(100)...

从这个意义上说:一种非正式的约定,通过返回受影响的对象来区分普通setter和允许流畅使用的setter。

主要区别在于
with
方法返回调用的对象实例

这允许像这样的“流畅”通话

 someProductBuilder.withName("bla").withPrice(100)...

从这个意义上说:一种非正式的约定,通过返回受影响的对象将普通setter与允许流畅使用的setter区分开来。

您可以采用任何一种方法,但第一种方法是尝试提供一个简单的设置,以便将多个调用链接在一起。。。比如:

Product p = new Product().withName("blah").price(1234).quantityOnHand(35);
它类似于构建器,其中您可能有另一个表示api的对象,然后以“build()”调用结束链,该调用生成您正在构建的类的实例:

Product p = ProductBuilder.newBuilder().withName("blah").price(1234).quantityOnHand(35).build();

您可以采用任何一种方法,但第一种方法是尝试提供一个链接,以便您可以将多个呼叫链接在一起。。。比如:

Product p = new Product().withName("blah").price(1234).quantityOnHand(35);
它类似于构建器,其中您可能有另一个表示api的对象,然后以“build()”调用结束链,该调用生成您正在构建的类的实例:

Product p = ProductBuilder.newBuilder().withName("blah").price(1234).quantityOnHand(35).build();

它用于通过名称获取对对象的引用,以便方法调用可以与同一对象上的其他调用链接


示例:

它用于通过名称获取对对象的引用,以便方法调用可以与同一对象上的其他调用链接


示例:

了解它允许的生成器模式。了解它允许的生成器模式。