Adapter Design Pattern (Tasarım Örüntüsü)

Metin Alnıaçık
1 min readOct 14, 2018

Adapter design pattern, structural design pattern kategorisindedir.

Kullanım amacı;

  • İki uyumsuz interface’i beraber kullanmamızı sağlar.
  • Daha önce yazılmış olan kodları düzenlemek zorunda kalmayız. Sonuçta ilgili kodun daha önce çalıştığını kabul ediyoruz.
  • Adapte edeceğimiz class üzerinde değişiklik yapmadığımız için uygulama içerisinde kullanılmış olduğu herhangi bir yerde değişiklik yapmamız gerekmez.

Örnek üzerinde anlatmak faydalı olacaktır.

Öncelikle, şifreleme işlemleri için halihazırda kullandığımız interface budur.

Yukarıdaki iki class Crypt interface’inden türetilmiştir. Bu class’ların çalışmasında herhangi bir problem yoktur. Fakat aşağıdaki class farklıdır.

Yukarıdaki class Crypt interface’i kullanılarak türetilmediğinden metodları farklıdır. Bu class’ın adapter’ını yazarak CryptA ve CryptB class’larının kullanıldığı gibi kullanılabilir.

Yukarıda CodeX class’ı için bir adapter class yazılmıştır. Bu class dışarıdan CodeX tipinde bir class alır ve Crypt interface’ine uygun hale getirilir.

Son olarak test kısmında,

21 numaralı satırda CodeX class’ı CodeXAdapter class’ına constructor üzerinden parametre olarak gönderiliyor. CryptA ve CryptB class’larının kullanıldığı gibi kullanılmaktadır.

Örneğin tamamına github adresimden ulaşabilirsiniz.

İyi günler,
Bol kodlamalar :)

--

--