Not: Sorular yazının sonunda.
Abstract Factory vs Factory Method ile ilgili diğer stackoverflow konularını okudum . Her modelin amacını anlıyorum. Ancak, tanım konusunda net değilim.
Fabrika Yöntemi, bir nesne oluşturmak için bir arabirim tanımlar, ancak alt sınıfların hangilerinin somutlaştırılacağına karar vermesine izin verir. Fabrika yöntemi, sınıfların örneklemeyi alt sınıflara ertelemesini sağlar.
Buna karşılık, bir Soyut Fabrika, somut sınıflarını belirtmeden ilgili veya bağımlı nesnelerin ailelerini oluşturmak için bir arayüz sağlar.
Özet Fabrika çok benziyor Fabrika Yöntemi . Demek istediğimi göstermek için birkaç UML sınıfı çizdim.
Not:
- Diyagram www.yuml.com adresinden alınmıştır, bu yüzden mükemmel bir şekilde yönlendirilmemişlerdir. Ama onun ücretsiz bir hizmet :).
- Diyagramlar mükemmel olmayabilir. Halen GoF tasarım modellerini öğreniyorum .
Fabrika Yöntemi:
Soyut Fabrika (sadece 1 üye):
Abstract Factory (daha fazla üye):
Sorular:
- Eğer Özet Fabrika tek yaratıcısı ve bir ürünü var, hala öyle Özet Fabrika desen? (famil oluşturmak için bir arayüz)
- Can Fabrika Yöntemi beton yaratıcısı bir Arayüz oluşturulabilir ya da bir sınıftan olmak zorunda ki? (sınıflar örneklerin alt sınıflara ertelenmesine neden olur)
- Eğer Soyut Fabrikanın sadece bir yaratıcısı ve bir ürünü olabilirse, Soyut Fabrika ile Fabrika Yöntemi arasındaki tek fark , birincinin yaratıcısının Arayüz ve ikincisinin yaratıcısının bir Sınıf olmasıdır?