Fabrika Yöntemi kalıbı, karar verme sürecini çağıran sınıftan soyutlar. Bunun birkaç avantajı var:
Yeniden. Eğer birçok yerde somutlaşmak istersem, durumumu tekrarlamak zorunda değilim, bu yüzden yeni bir sınıf eklemeye geldiğimde, eksik olma riskini taşımam.
Birim-Testedilebilirlik. Doğru koşullarda doğru tiplerin geri döndüğünden emin olmak için fabrika için 3 test yazabilirim, daha sonra çağrı sınıfımın yalnızca fabrika olup olmadığını ve ardından geri dönen sınıfta gerekli yöntemleri aradığını görmek için test edilmesi gerekir. Fabrikanın veya somut sınıfların uygulanması hakkında hiçbir şey bilmemesi gerekiyor.
Genişletilebilirlik. Birisi bu fabrikaya yeni bir D sınıfı eklememiz gerektiğine karar verdiğinde, arama kodlarından hiçbirine, ne birim testlere ne de uygulamaya yönelik hiçbir şey söylenmemelidir. Biz sadece yeni bir D sınıfı yarattık ve fabrika metodumuzu genişlettik. Açık-Kapalı İlkenin tanımı budur .
Durum gerektiriyorsa, yeni bir fabrika sınıfı yaratabilir ve çalışırken değiştirilebilir duruma getirebilirsiniz - örneğin, test ederken D sınıfını açıp kapamak istiyorsanız. Bu duruma yalnızca bir kez rastladım, ancak bu son derece yararlı oldu.
Daha önce de belirtildiği gibi, Fabrika Desenleri her zaman gidecek yol değildir. Ancak, koşullu somutlaştırmayı gördüğünüz her yerde, bir an düşüncesini vermelisiniz.