Design Patterns: Abstract Factory vs Fabrika Yöntemi
Not: Sorular yazının sonunda.
Diğer stackoverflow ile ilgili konuları okudumSoyut Fabrika vs Fabrika Yöntemi. Her desen niyetini anlıyorum. Bununla birlikte, tanımı konusunda net değilim.
Fabrika Yöntemi arabirim tanımlar bir nesne yaratmak için, ama sağlar alt sınıflar için karar başlatılamadı. Fabrika bir yöntem sağlar sınıflar için örnekleme erteleme alt sınıflar.
Buna karşılık, Soyut bir Fabrika oluşturmak için bir arabirim sağlar ilgili veya bağımlı aileler onların belirtmeden nesneleri beton sınıfları.
Soyut Fabrikagörünüyor çok benzerFabrika Yöntemi. Birkaç UML sınıfları tezimi kanıtlamak için çizdim.
Not:
- Diyagram vardırwww.yuml.commükemmel odaklı değiller. Ücretsiz bir hizmet :) ama onun.
- Diyagramlar mükemmel olmayabilir. Hala öğreniyorumGoFtasarım desenleri.
Fabrika Yöntemi:
Soyut Fabrika (sadece 1 Üye):
Soyut Fabrika:
Soru:
- EğerSoyut Fabrikasadece tek bir yaratıcı ve tek bir ürün, hala vardırSoyut Fabrikadesen?(ailenin oluşturmak için bir arayüz)
- OlabilirFabrika Yöntemibeton yaratıcı bir Arayüz oluşturulabilir veya bir sınıf olmak zorunda mı?(sınıflar, alt sınıflar için örneklemesi erteleme)
- Eğer Soyut Fabrika tek bir yaratıcısı ve tek bir ürün var, arasındaki tek farkSoyut FabrikaveFabrika Yöntemieski için yaratıcı bir Arayüz ve ikincisi için yaratıcı bir Sınıf mı?
CEVAP
Bu yardımcı olur umarım. Fabrikaların çeşitli türlerini açıklar. Benim referans olarak Head First Design Patterns kullandım. yuml.me diyagram kullandım.
Statik Fabrika
Ürün için Statik bir Yöntem ile bir sınıf Ürünün çeşitli alt türleri vardır.
Basit Bir Fabrika
Ürün çeşitli alt tabakasından bir sınıftır. (Statik Fabrika daha iyidir. Yeni tip eklendiğinde Bankası Ürün sınıfı, sadece Basit bir Fabrika Sınıfı) değiştirilmesi gerekmez
Fabrika Yöntemi
İçeren bir yöntem, ürün türü kendi türü ile ilgili üretim yapmak. (Bu tür alt sınıf için ertelenmiş çünkü daha Basit bir Fabrika daha vardır.)
Soyut Fabrika
Üreten Türleri bir Aile ile ilgili. Ürettiği türde birden fazla yöntem vardır Fabrika gibi bir Yöntem daha belirgin bir şekilde farklıdır. (Bu karmaşık daha iyi gerçek hayatta örneğin bir sonraki çizime bakınız).
Gelen Örnek .NET Çerçeve
DbFactoriesProvider-alt türleri vardır hayır gibi Basit bir Fabrika. Bu DbFactoryProvider bağlantı ve komut nesneleri gibi çeşitli ilgili veritabanı nesneleri oluşturabilir gibi soyut bir fabrika.
Bu Fabrika Yöntemi yaratma kapasitesid...
Soyut Fabrika ve Fabrika Yöntemi fabri...
Tasarım Desenleri: Fabrika Fabrika yön...
Bir Kurucu kullanmak için zaman ve get...
Soyut Fabrika Deseni ve Fabrika Yöntem...