Apakah ada tujuan untuk mendeklarasikan init()
metode untuk suatu tipe?
Saya tidak bertanya apakah kita harus memilih init()
daripada konstruktor atau bagaimana menghindari menyatakaninit()
.
Aku bertanya apakah ada setiap alasan di balik mendeklarasikan init()
metode (melihat bagaimana umum itu) atau jika itu adalah kode bau dan harus dihindari.
The init()
idiom cukup umum, tapi saya belum melihat manfaat nyata.
Saya berbicara tentang tipe yang mendorong inisialisasi melalui metode:
class Demo {
public void init() {
//...
}
}
Kapan ini bisa digunakan dalam kode produksi?
Saya merasa itu mungkin bau kode karena itu menyarankan konstruktor tidak sepenuhnya menginisialisasi objek, menghasilkan objek yang dibuat sebagian. Objek seharusnya tidak ada jika statusnya tidak disetel.
Ini membuat saya percaya itu mungkin bagian dari semacam teknik yang digunakan untuk mempercepat produksi, dalam arti aplikasi perusahaan. Ini adalah satu-satunya alasan logis saya bisa memikirkan memiliki idiom seperti itu, saya hanya tidak yakin bagaimana itu akan bermanfaat jika demikian.
init()
kelas turunan, atau sebaliknya?) Jika demikian, ini adalah contoh membiarkan kelas dasar menjalankan "post-constructor "Yang hanya dapat dieksekusi setelah kelas yang paling diturunkan menyelesaikan konstruksi. Ini adalah contoh inisialisasi multi-fase.