Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

Design Pattern - Abstract Factory



  April 20, 2019    Labels:,,,,,,,, 

Bu design pattern, yaratılan nesnelerin üretimini o nesneyi kullanan client'lardan gizlemek amacı taşır. Örneğin günlük hayatta kullandığımız bir çok ürünün nasıl ve nerede üretildiğini bilmeyiz. Ürünün üretim yeri veya üretim şeklinde yapılan değişikliklerden etkilenmeyiz. O ürünleri satın alırız ve kullanırız. Bu pattern ile de nesnenin nasıl ve nerede üretildiği client'lardan gizlenerek nesne üretiminin esnekliği arttırılabilir. Ayrıca ürün grupları ile çalışırken bu design pattern'ı kullanırız çünkü client'ın ürüne bağımlılığı olsun istemeyiz. Client'ların ürünlere bağımlılığının olması daha sonra kodda değişiklik yapmayı zorlaştırır. Bu pattern ile client istediği ürün grubundan istediği nesneyi bağımlı olmadan yaratabilir.

Uygulama
  • Client için bir fabrika interface'i üzerinden nesne üretimi yapılır.
  • Her ürün grubu için bir fabrika sınıfı yazılır ve genel fabrika interface'i implement edilir.
  • Client istediği ürün grubundan nesne yaratırken bu nesnenin nasıl ve nerede üretildiğini bilmez. Böylelikle üretilen ürünler ile doğrudan bir bağımlılığı olmaz.
Aşağıdaki örnekte client bir window nesnesi yaratacağı zaman fabrika interface'i üzerinden doğrudan window nesnesinin türüne bağımlı olmadan istediği window nesnesini yaratabilir. Yeni bir window türü ekleneceği zaman kodda herhangi bir değişiklik yapmaya gerek kalmadan sadece bir fabrika sınıfı ekleyerek kolaylıkla kod değişikliklere uyumlu hale getirilebilir.





No comments:

Post a Comment