FACADE DESİGN PATTERN(Ön Yüz Tasarım Desen)

Veysel Güneş
3 min readNov 11, 2019

Merhaba arkadaşlar bugün sizlere öğrendiklerimi yazıyorum serisinde tasarım desenlerinden yapısal desenler kısmında incelediğimiz facade tasarım deseninde bahsedeceğim.

Facade Bir alt sistemin parçalarını oluşturan classları istemciden soyutlayarak kullanımı daha da kolaylaştırmak için tasarlanmış tasarım kalıbıdır. Mimarisel açıdan ise, karmaşık ve detaylı bir sistemi organize eden ve bir bütün olarak clientlara(istemcilere) sunan yapıdır. Anlayacağınız, karmaşık ve detaylı olarak nitelendirdiğimiz bu sistemi bir alt sistem olarak varsayarsak eğer bu sistemi kullanacak clientlara daha basit bir arayüz sağlamak ve alt sistemleri bu arayüze organize bir şekilde dahil etmek ve bu alt sistemlerin sağlıklı çalışabilmesi için bu arayüz çatısı altında işin algoritmasına uygun işlev sergilemek istersek Facade Design Pattern’i kullanmaktayız.

Burada bilmeniz gereken durum, alt sistem içerisinde bulunan sınıfların birbirlerinden bağımsız olmasıdır. Ayrıca Facade sınıfından da bağımsız bir şekilde çalışabilmektedirler.
Facade bizim classlarımızı içermek zorundadır ve operasyonu yaparken onlara ait fonksiyonellikleri kullanması gerekli.

Şimdi ise Facade Tasarım desenin daha çok anlamak ve pekiştirmek için bir örnek yapacağız;

Örneğimiz ise bir restoranda müşterinin istediklerini her bir şeyi tek tek ayrı yerlere gidip sıcak yemekler bölümüne gidip sıcak yemek seçimi yapmasını, Soğuk yiyecekler bölüme gidip soğuk yiyeceklere bakması ve son olarak ta içecekler kısmına gidip içecekleri seçmesi gerektirmeden, bir asistan robot ile bu istenilen bütün işlemleri tek bir robot tarafında gerçekleştirerek, müşterinin sipariş sırasında oluşabilecek bütün durumları ortadan kaldırmaktır.

Kodlama kısmına geçecek olursak tasarım desenimizin kullanacağımız facade kısmında biz 3 adet sınıf oluşturup istenilen istekleri burada karşılayacağız.

Bu kadar somut kısımları tanımladıktan sonra şimdi örneğimizi görseller kısmında daha anlaşılır hale getirelim,

Müşteri sınıfımızda bulunan 4 adet istenilen özellikler

Müşteri Sınıfı

Müşteri sınıfımızda müşterinin ulaşabilmesi için Sıcak yemekler kısmı, Soğuk yemekler kısmı , içecekler kısmı ve son olarak sipariş numarası tanımlıyoruz sipariş numarasını kullanmaktaki amaç siparişin hangi müşteri tarafında sipariş verildiğini belli etmektir.

Facade kısmında yararlanacağımız kısımlar ise her birisi farklı birer sınıf olarak tanımlıyoruz

3 Adet facade kullanılacak sınıflar

daha sonra ise artık bunları tek bir noktada toplayacak olan garson robotumuz’a yani facade sınıfında birleştirilmesini ve kodlamasını yapıyoruz.

Facade Sınıfı

Artık garson robotumuz’a gerekli özellikleri yükledikten sonra artık programımızın MAIN kısmını yazalım,

Evet artık Garson robotumuz göreve hazır.

Şimdi Bir çıktı alarak programımıza test edelim,

Program çıktısı

Ve Son olarak Uml sınıf diyagramında bakacak olursak

Evet, bir Design Pattern makalemizinde sonuna gelmiş bulunmaktayız.

Sabırla okuduğunuz için teşekkür ederim…

Sonraki yazılarımda görüşmek üzere…

Kaynak: http://cagataykiziltan.net/

--

--

Veysel Güneş

Studying software engineering at firat university, Blogger Öğrendiklerini yazmaktan ve ortaya bir ürün koymaktan mutlu olan http://veyselgunes.site/