Specifications for the Adapter Pattern
The main Interface - So this is the interface that the client will actually use.
The client - The actual request will come from here and interact with the adapter class.
The adapter class - This class is a wrapper class it will implement the interface and modify the specifications according to needs. It will send the required specifications after modification according to the adapter class.
The adapter class - This is the class that will interact with the adapter class to use the functionality from it. It will tell the adapter class what kind of specification is needed.
Example:
// Interface Credit Card
public interface CreditCard
{
public void giveBankDetails();
public String getCreditCard();
}
//Class Bank Details
public class BankDetails
{
private String bankName;
private String accHolderName;
private long accNumber;
public String getBankName()
{
return bankName;
}
public void setBankName(String bankName)
{
this.bankName = bankName;
}
public String getAccHolderName()
{
return accHolderName;
}
public void setAccHolderName(String accHolderName)
{
this.accHolderName= accHolderName;
}
public long getAccNumber()
{
return accNumber;
}
public void setAccNumber(long accNumber)
{
this.accNumber = accNumber;
}
}
//Class Bank Details
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BankCustomer extends BankDetails implements CreditCard
{
public void giveBankDetails()
{
Try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println(“Enter the account holder name :");
String customername = br.readLine();
System.out.print("\n");
System.out.print("Enter the account number:");
long accno = Long.parseLong(br.readLine());
System.out.print("\n");
System.out.print("Enter the bank name :");
String bankname = br.readLine();
setAccHolderName(customername);
setAccNumber(accno);
}
catch(Exception e)
{
e.printStackTrace();
}
@Override
public String getCreditCard() {
long accno=getAccNumber();
String accholdername=getAccHolderName();
String bname=getBankName();
return ("The Account number "+accno+" of "+accholdername+" in "+bname+ "
bank is valid and authenticated for issuing the credit card.”);
}
}
// Main class
Public class AdapterPatternDemo
{
public static void main(String args[])
{
CreditCard targetInterface=new BankCustomer();
targetInterface.giveBankDetails();
System.out.print(targetInterface.getCreditCard());
}
}
Output
Enter the account holder name: Raj Khurana
Enter the account number: 100401580002
Enter the bank name: State Bank of India
The Account number 100401580002 of Raj Khurana in State Bank of India bank is valid and authenticated for issuing the credit card.