Adapter Pattern

Adapter: tạo mới interfaces và implement có những tính năng mới nhầm thay thế class, interfaces cũ.

Ngữ cảnh: Ta đang đánh cá trên 1 tàu đánh cá (FishingBoat) có chức năng sail() and fish() vô tình gặp cướp biển. Ngay bây giờ ta cần xây dựng tàu chiến dựa trên tàu đánh cá có sẵn sail() và thêm khả năng chiến đấu battle().

Đây là tàu đánh cá có sẵn.


public class FishingBoat {
  public void sail() {
     System.out.println("sail...");
  }

  public void fish() {
    System.out.println("fishing ...");
  }
}

Bây giờ ta cần build 1 tàu chiến dựa trên tàu đánh cá.


/**
* The interface expected by the client.<br>
* A Battleship can fire and move.
*
*/
public interface BattleShip {
   void fire();
   void move();
}

public class BattleFishingBoat implements BattleShip {

  private FishingBoat boat;

  public BattleFishingBoat() {
    boat = new FishingBoat();
  }

  @Override
  public void fire() {
    System.out.println("fire!");
  }

  @Override
  public void move() {
    boat.sail();
  }
}

 

One thought on “Adapter Pattern

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