자바의 setter가 "this"를 반환하게하는 것이 좋은 생각입니까?
public Employee setName(String name){
this.name = name;
return this;
}
이 패턴은 다음과 같이 setter를 연결할 수 있기 때문에 유용 할 수 있습니다.
list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!"));
이 대신에 :
Employee e = new Employee();
e.setName("Jack Sparrow");
...and so on...
list.add(e);
...하지만 일종의 표준 규칙에 위배됩니다. 세터가 다른 것을 유용하게 만들 수 있기 때문에 가치가 있다고 생각합니다. 이 패턴이 JMock, JPA와 같은 일부 장소를 사용하는 것을 보았지만 드물게 보이며 일반적 으로이 패턴이 어디서나 사용되는 매우 잘 정의 된 API에만 사용됩니다.
최신 정보:
내가 설명한 것은 분명히 유효하지만 실제로 찾고있는 것은 이것이 일반적으로 수용 가능한지 여부와 함정이나 관련 모범 사례가 있는지에 대한 생각입니다. 빌더 패턴에 대해 알고 있지만 설명하고있는 것보다 조금 더 관련이 있습니다. Josh Bloch가 설명했듯이 객체 생성을 위해 관련된 정적 빌더 클래스가 있습니다.
this
. 때로는 값을 반환하는 대신 객체의 멤버에서 작동하도록 함수를 변경하여이를 수행 할 수도 있습니다. 훌륭합니다. :)