Facade Design Pattern

Facade design pattern çok karmaşık bir sınıf kütüphanemiz veya çok karmaşık bir modülümüz olduğunda işimizi kolaylaştırmaktadır. Çoğu zaman belirli bir işlemi yapmak için çok fazla sayıda nesne üretiriz ve onlar arasında ilişki kurmamız gerekir. Buda çok fazla sayıda copy – paste yapmamız demektir. Bu tasarım deseni ile belirli bir işi büyük bir kütüphane içerisinde sürekli yapıyorsak, bu iş için oluşturulmuş bir arayüz tanımlamak bize fayda sağlayacaktır. İşin özeti alt sınıflarda yapılan komplex işleri üst katmanda yaparak hem copy –paste işleminden kurtuluruz hemde client tarafına temiz kod sağlamış oluruz.

Facade kullanırken dikkat etmemiz gereken önemli bir konu ise facade sınıf ile alt sınıfların birbirine bağlı olmamasına dikkat etmeliyiz. Yani facade sınıfı silersek program hala çalışır halde olmalıdır.

Örnek bir uygulama olarak yukarıda ki yapıyı gösterebiliriz. Facade sınıfımız yani Computer sınıfımız nesne yaratımını kendi constructor’ında yapıyor ve alt sınıfların metotlarını kendi bünyesine alarak bir köprü görevi görüyor.

Yorumlar