Adapter Pattern

Adapter Pattern Java Design Pattern Tutorial
Adapter Pattern: converts the interface of a class into another interface the client expect. Adapter lets classes work together that couldn’t otherwise because of incompatible interfaces.

Example

TV.java
package com.adapterpattern.example;

public interface TV {
 public void watch();
}
LEDTV.java
package com.adapterpattern.example;

public class LEDTV implements TV{

 @Override
 public void watch() {
  System.out.println("Now are watching LED TV");
  
 }

}
Phone.java
package com.adapterpattern.example;

public interface Phone {
 public void call();

}
SmartPhone.java
package com.adapterpattern.example;

public class SmartPhone implements Phone{

 @Override
 public void call() {
  System.out.println("You are making calls using SmartPhone");
 }
}
SmartPhoneTVAdapter.java
package com.adapterpattern.example;

public class SmartPhoneTVAdapter implements Phone{
 
 TV tv;

 public SmartPhoneTVAdapter(TV tv) {
  this.tv = tv;
 }

 @Override
 public void call() {
  tv.watch();
 }
 
}
SmartPhoneTVTestDrive.java
package com.adapterpattern.example;

public class SmartPhoneTVTestDrive {
 public static void main(String[] args) {
  Phone phone = new SmartPhone();
  phone.call();
  TV tv = new LEDTV();
  /*
   * TV and Phone are two incompatible interfaces, After implementing
   * SmartPhoneTVAdapter we are able watch TV in SmartPhone
   */
  Phone smartPhoneTV = new SmartPhoneTVAdapter(tv);
  smartPhoneTV.call();
 }
}



Home

No comments:

Post a Comment