Saat memodelkan kelas, apa cara yang disukai untuk menginisialisasi:
- Konstruktor, atau
- Metode Pabrik
Dan apa pertimbangan untuk menggunakan keduanya?
Dalam situasi tertentu, saya lebih suka memiliki metode pabrik yang mengembalikan nol jika objek tidak dapat dibangun. Ini membuat kode rapi. Saya hanya dapat memeriksa apakah nilai yang dikembalikan tidak nol sebelum mengambil tindakan alternatif, berbeda dengan melemparkan pengecualian dari konstruktor. (Saya pribadi tidak suka pengecualian)
Katakanlah, saya memiliki konstruktor pada kelas yang mengharapkan nilai id. Konstruktor menggunakan nilai ini untuk mengisi kelas dari database. Dalam kasus di mana catatan dengan id yang ditentukan tidak ada, konstruktor melempar RecordNotFoundException. Dalam hal ini saya harus menyertakan konstruksi semua kelas tersebut dalam blok try..catch.
Berbeda dengan ini, saya dapat memiliki metode pabrik statis pada kelas-kelas yang akan mengembalikan nol jika catatan tidak ditemukan.
Pendekatan mana yang lebih baik dalam hal ini, konstruktor atau metode pabrik?