Adapter

Frequency of Use Medium – High Intent Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces. Structure Adapter Applicability Use the Adapter pattern when:

  • you want to use an existing class, and its interface does not match the one you need.
  • you want to create a reusable class that cooperates with unrelated or unforeseen classes, that is, classes that don’t necessarily have compatible interfaces.
  • (object adapter only) you need to use several existing subclasses, but it’s impractical to adapt their interface by subclassing every one. An object adapter can adapt the interface of its parent class

Implementation Code (C#)

using System;
public class MainClass {
 public static void Main() {
  Target target = new Adapter();
  target.Request();
 }
}

 class Target {
  public virtual void Request() {
   Console.WriteLine("Called Target Request");
  }
 }
 
 class Adapter : Target {
 private Adaptee _adaptee = new Adaptee();
 
 public override void Request() {
  _adaptee.SpecificRequest();
  }
 }
 
 class Adaptee {
  public void SpecificRequest() {
   Console.WriteLine("Called Adaptee specific Request");
  }
 }

Code Output

 Called Adaptee specific Request
Advertisements
Categories: C#, Design Pattern, Programming
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: