Sınıfları modellerken, başlangıç durumuna getirmenin tercih edilen yolu nedir:
- Yapıcılar, veya
- Fabrika Yöntemleri
Her ikisini de kullanmak için dikkat edilmesi gereken noktalar nelerdir?
Bazı durumlarda, nesne oluşturulamazsa null döndüren bir fabrika yöntemine sahip olmayı tercih ederim. Bu kodu düzgün yapar. Yapıcıdan bir istisna atmanın aksine, alternatif eylem yapmadan önce döndürülen değerin boş olup olmadığını kontrol edebilirim. (Şahsen istisnaları sevmiyorum)
Diyelim ki, bir sınıf üzerinde bir id değeri bekleyen bir yapıcı var. Yapıcı sınıfı veritabanından doldurmak için bu değeri kullanır. Belirtilen kimliğe sahip bir kaydın bulunmaması durumunda, yapıcı bir RecordNotFoundException oluşturur. Bu durumda tüm bu sınıfların yapımını bir try..catch bloğu içine almam gerekecek.
Bunun aksine, kayıt bulunmazsa null döndürecek olan bu sınıflar üzerinde statik bir fabrika yöntemi olabilir.
Bu durumda, yapıcı veya fabrika yönteminde hangi yaklaşım daha iyidir?