Java seters "bu" dönmek yapmak iyi ya da kötü bir fikir mi?
public Employee setName(String name){
this.name = name;
return this;
}
Bu desen yararlı olabilir çünkü daha sonra bu gibi ayarlayıcıları zincirleyebilirsiniz:
list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!"));
bunun yerine:
Employee e = new Employee();
e.setName("Jack Sparrow");
...and so on...
list.add(e);
... ama standart sözleşmeye aykırı. Sanırım bu ayarlayıcının başka bir şey yapmasını sağlayabilir. Bu kalıbın bazı yerlerde (ör. JMock, JPA) kullanıldığını gördüm, ancak nadir görünüyor ve genellikle bu kalıbın her yerde kullanıldığı çok iyi tanımlanmış API'ler için kullanılıyor.
Güncelleme:
Açıkladığım şey açıkça geçerli, ama gerçekten aradığım şey bunun genel olarak kabul edilebilir olup olmadığı ve herhangi bir tuzak veya ilgili en iyi uygulamalar olup olmadığı hakkında bazı düşünceler. Builder desenini biliyorum ama ne tarif ettiğimden biraz daha ilgili - Josh Bloch'un tanımladığı gibi, nesne oluşturma için ilişkili bir statik Builder sınıfı var.
this
. Bazen, bir değer döndürmek yerine, nesnenin bir üyesi üzerinde çalışacak şekilde işlevi değiştiririm, sadece bunu yapabilirim. Bu harika. :)