C#'ta Adapter Design Pattern

C#'ta Adapter Design Pattern kullanımını ele alacağız.

Adapter Design Pattern: Structural Patterns Grubu içerisinde yer alır. Varolan mevcut sisteme yabancı bir yapının adapte edilmesi istenildiği durumlarda kullanılır. Birbiri ile uyum sağlamayan yapıların araya bir bağlantı adaptörü eklenmesi ile kullanılabilir hale getirilmesi sağlanır.

Örneğin:

  • USB bir klavyenin ucuna takılan ps2 adaptörü ile ps2 girişine bağlanabilmesi,
  • Büyük uçlu kulaklık girişlerinin çevirici adaptör ile normal kulaklık olarak kullanılması,
  • Genişliği 1 birim boru ile 3 birim olan iki borunun ortaya eklenen bir ek boru ile birleştirilmesi. gibi gündelik hayattan örnekler verilebilir.

Adapter pattern ayrıca Wrapper Pattern olarak da isimlendirilir. Com, ActiveX nesneleri gibi unmanaged kod yapıları ile managed kod yapıları arasında wrapper olarak kullanılır. Bu wrapper adaptör aracılığı ile biz bu nesnelerin özellik ve metotlarına erişebilir ve kullanabiliriz.

Target: Varolan mevcut yapı.

Adapter: Adaptör

Adapte: Adapte edilecek tip nesne (yabancı yapı)

Client: İstemci uygulama

namespace ConsoleApplication1

{

// Target class Target

{

public virtual void Request()

{

Console.WriteLine("Called Target Request()");

}

}


// Adapter

class Adapter : Target

{

private Adaptee _adaptee = new Adaptee();


public override void Request()

{

_adaptee.SpecificRequest();

}

}


//Adaptee class Adaptee

{

public void SpecificRequest()

{

Console.WriteLine("Called SpecificRequest()");

}

}


// Client class MainApp

{

static void Main()

{

Target target = new Adapter(); target.Request(); Console.ReadKey();

}

}

}

Adapter doğrudan adaptee dan türetilerek yada adapter adapte tipinden bir nesne örneğini sarmalayıp tutararak kullanılabilir.

Adaptee farklı platformlarda çalışan bir yapı olabilir, farklı library içinde olabilir, com/activex olabilir.

 

 

 

Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git