14 Nisan 2008 Pazartesi

Facade Pattern

Nedir facade örüntüsü? Nerde ihtiyaç duyarım, nasıl kullanırım? Facede örüntüsü alt sistemin arayüzlerini kontol altına almaya çalışan birleşik bir arayüz(interface) sunmaktadır. Daha açıklayıcı olmak gerekirse yapılmış bir sistemin yapısını bozmadan, alt sistemlerin arayüzlerini kullanarak daha derli toplu bir arayüz sunmak ve bizim bu alt sistemi daha iyi, aktif ve doğru kullanmamıza olanak sunmak.
Terimlerimiz:
Amaç: Var olan sistemi daha basit bir şekilde nasıl kullanırım.
Problem: Kompleks bir sistemi daha akıcı ve sade nasıl yapabilirim.
Çözüm: Facade örüntüsünün çözüm sunduğu bir arayüz tasarlayıp alt sistem kaynaklarını istemciye tek elden erişilebilir bir hale getirmek.

Alan Shalloway, James R. Trott , Software Patterns Series

Şekil 2
Şekil2 de iki tane istemcinin(client) var olan bir sistemin kaynaklarını kullanmasını goruyoruz. Burda beliren sorun da tüm çıplaklığı ile gözüküyor. İstemcinin birden fazla alt sisteme erişmesi, kopleks yapının oluşmasına neden oluyor. Modelleme de bile karmaşıklık göze çarpıyor, bu işin kodlama aşamasını düşünmek ürkütücü geliyor. Bu yazıyı okuyan arkadaşların belki facade gerek olmadığını düşünüyorsa,
1) Sistemin birden çok alt sistemden oluştuğunu düşünürsek
Sorun: Aynı sürecin birden fazla programcı tarafında yapılması yani aynı kodun büyük bir projede tekrarlanıp durması.
XX adlı Muhendisinin kodu
A kaynağına eriş
A dan doneni B kaynağına yolla
B den doneni C ye yolla ve dönen değeri kullan.

YY adlı Muhendisinin kodu
A kaynağına eriş
A dan doneni B kaynağına yolla
B den doneni C ye yolla ve dönen değeri kullan.

2) İki mühendisin aynı yetkinlikte olmaması.
Sorun : Kaynakların doğru ve etkin kullanılmaması.
Bunu da unutmamak lazım: Yazdığınız kodun sizden sonraki mühendis tarafından okunabilir olması ve taktirle karşılanması mühendislik etiği kavramlarını oluşturmaktadır

Hiç yorum yok: