🔌Adapter
Last updated
Last updated
Bir sınıfın arayüzünü istemcinin beklediği arayüze çevirmeye yarar.
Farklı sistemleri kendi sistemimize dahil ederken bazen yapılar uyuşmayabiliyor. Buradaki yapılar arayüzler olabilir. Bu desenin amacı arayüz için bir adapter oluşturarak sanki kendi sistemimize aitmiş gibi çalıştırmayı sağlar. Özetle; uyumsuz bir yapıyı, istemcinin beklediği bir yapıya getirir.
Adaptee: Mevcut sisteme uygulanmak istenen sınıf.
Adapter: Mevcut sisteme uygulama işlemini yapan sınıf.
Target: Sistemde kullanılan yapı. (Abstract, Interface vs.)
Geliştirdiğimiz uygulamada JSON işlemleri için sistemimizin IJsonSerializer
arayüzünü kullandığını düşünelim. İlerleyen süreçte bu işlemleri gerçekleştirmek için 3. parti bir yazılım kullanmak istediniz fakat daha sonradan eklediğiniz yapı sisteminiz ile uyumsuz çünkü sistem IJsonSerializer
arayüzünü uyguluyor fakat yeni gelen yapı bunu uygulamamaktadır ve yeni gelen yapıya da müdahalede bulunamıyorsunuz. Bu sorunu adapter ile aşağıdaki gibi çözüme götürebiliriz.
C# Kod Örneği:
Bu tasarım deseninin JAVA ve diğer diller için olan uygulamasını bu tasarım deseni için oluşturulmuş klasörde bulabilirsiniz.