AdaptörDesign Pattern(Adaptor Tasarım Deseni)

Veysel Güneş
Kodcular
Published in
3 min readNov 4, 2019

--

Merhaba arkadaşlar bugün sizlerle yazılım alınında çok önemli bir yere sahip olan design patternslerinden olan Adaptör tasarım deseninde bahsedeceğim.

Adaptör Tasarım deseni mevcut bir sınıfı veya arayüz sınıfını, eldeki farklı bir arayüz sınıfına uygun hale getirerek tekrar kullanmak amacıyla uygulanır. Çoğu zaman işe yarayacağını düşündüğümüz mevcut bir sınıfı kendi sistemimizde tekrar kullanmak isteriz. Fakat mevcut sınıf, tam beklediğimiz gibi olmayabilir. Bu durumda araya bir tane adaptör yazarak, mevcut sınıfı kendi sistemimize uygun hale getirebiliriz. Böylece adapte edilen nesnede kod değişikliği olmadan benzer bir arayüzü destekler hale getiririz. Ayrıca adaptasyon işlemi sırasında, adapte edilen nesnenin desteklemediği özellikler de adaptör tarafından gerçekleştirilebilir.

Ayrıca adaptasyon işlemi sırasında, adapte edilen nesnenin desteklendiği özelliklerde Adaptör tarafında gerçekleştirilebilir. Bir sınıfın arayüzünü müşterilerin istediği arayüze dönüştürülür. Adaptör, sınıfların uyumsuz ara birimler nedeniyle aksi halde olmayan birlikte çalışmasına izin verir. mevcut bir sınıfı bir arayüzle sarar.

Yeniden kullanım her zaman acı verici ve zor olmuştur. Bunun bir nedeni,eski bir şeyi yeniden kullanırken, yeni bir şeyi tasarlamanın sıkıntısı vardır. Fiziksel boyutlar veya yanlış hizalama olabilir. Zamanlama veya senkronizasyon olabilir.

Eski bir ikili duvar prizine yeni uçlu bir elektrik kablosu takmaya benzemektedir, duvarda ki prize elektrik prizini takmak için bir dönüştürücü ye ihtiyacımız varsa aynı şeklinde de yazılımlarda bu tip dönüşümlere ihtiyacımız vardır. Bu bakımda yazılım alanında bunu Adaptör tasarım desenini kullanarak yapabiliriz.

Şimdi sizlere Adaptör ile alakalı olarak bir örnek vereceğiz.

Sağlık bakanlığında çalışan Ahmet Ali belirli et türleri için (biftek, hindi ve tavuk)
bir veritabanı oluşturacaktır. Eski vertibanında sadece pişirme dereceleri olduğu için
bu verisetini değiştirmek yerine üzerinde oynama yapacaktır. Bu veri tabanında bu
türler için optimum fırında pişirilme dereceleri, porsiyon başına protein ve kalori
değerleri ve son olarak ise pişirilme süreleri olacaktır. Örnek olarak sığır eti için;
• Fırında pişirme derecesi: 85 C
• Kalori değeri: 75 kal.
• Protein değeri: 7.45 pr.
• Pişirme süresi: 25 dk.

yukarıda örnekte görüldüğü üzere bize verilen değerin fırında pişirilme derecesini veriyor ancak verilen değerlere göre bizden pişirilen ürünün Kalori değerini, Protein değerini ve en son olarak ta pişirme süresini istiyor.

Şimdi bu örneğimizi C#’ı kullanarak kodlamaya çalışalım.

ilk olarak Client kısmımızı oluşturalım.

Client kısmında mevcut olan özeliklerimizden fırında pişirilme dereceleri mevcut,

İkinci olarak Servis kısmımızda ise artık fırında pişirilme dakikasına extra olarak gelecek protein oranı, kalori oranı ve pişirme süresi eklendiği bölüm var.

Adaptör kısmında ise bizim istediğimiz özelliklerinin bulunduğu ve hangi metodun override yapılıp yapılmayacağını belirlediğimiz kısımdır . ayrıca burada istenilen özelliklerin sıralandığı bölümdür.

Ve son olarak Client kısmında üretiğimiz c değerini Adaptör metodunda türetip ekrana yazdırıyoruz.

Programımızın ekran çıktısı ise şu şekilde;

Ayrıca Programın UML Sınıf diyagramında gösterimde şu şekilde olacaktır.

UML sınıf Diyagramı

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

--

--

Veysel Güneş
Kodcular

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