Apakah ini ide yang baik atau buruk untuk membuat setter di java mengembalikan "ini"?
public Employee setName(String name){
this.name = name;
return this;
}
Pola ini dapat bermanfaat karena Anda dapat mengatur setter seperti ini:
list.add(new Employee().setName("Jack Sparrow").setId(1).setFoo("bacon!"));
alih-alih ini:
Employee e = new Employee();
e.setName("Jack Sparrow");
...and so on...
list.add(e);
... tapi itu agak bertentangan dengan konvensi standar. Saya kira itu mungkin bermanfaat hanya karena dapat membuat setter itu melakukan sesuatu yang bermanfaat. Saya telah melihat pola ini menggunakan beberapa tempat (misalnya JMock, JPA), tetapi tampaknya tidak umum, dan hanya umumnya digunakan untuk API yang didefinisikan dengan sangat baik di mana pola ini digunakan di mana-mana.
Memperbarui:
Apa yang saya jelaskan jelas valid, tetapi yang benar-benar saya cari adalah beberapa pemikiran tentang apakah ini secara umum dapat diterima, dan jika ada jebakan atau praktik terbaik terkait. Saya tahu tentang pola Builder tetapi sedikit lebih terlibat daripada apa yang saya jelaskan - seperti yang dijelaskan oleh Josh Bloch, ada kelas Builder statis terkait untuk pembuatan objek.
this
. Kadang-kadang, saya bahkan mengubah fungsi sehingga alih-alih mengembalikan nilai, itu beroperasi pada anggota objek, supaya saya bisa melakukan ini. Itu luar biasa. :)