Adapter パターン
MyMain
public class MyMain {
public static void main(String args[]) {
MyClassA classA = new MyClassA("2000", "01", "01");
MyClassB adapter = new MyAdapter(classA);
MyClassB classB = new MyClassB("1999/12/31");
MyDateViewer viewer = new MyDateViewer();
viewer.viewDate(adapter);
viewer.viewDate(classB);
}
}
MyDateViewer
public class MyDateViewer {
public void viewDate(MyClassB classB) {
System.out.println(classB.getDate());
}
}
MyClassB
public class MyClassB {
private String date;
public MyClassB(String date) {
this.date = date;
}
public String getDate() {
return date;
}
}
MyClassA
public class MyClassA {
private String year;
private String month;
private String day;
public MyClassA(String year, String month, String day) {
this.year = year;
this.month = month;
this.day = day;
}
public String getYear() {
return year;
}
public String getMonth() {
return month;
}
public String getDay() {
return day;
}
}
MyAdapter
public class MyAdapter extends MyClassB {
MyClassA classA;
public MyAdapter(MyClassA classA) {
super(null);
this.classA = classA;
}
public String getDate() {
String date = "";
date += classA.getYear();
date += "/";
date += classA.getMonth();
date += "/";
date += classA.getDay();
return date;
}
}
実行結果
L:\>java MyMain
2000/01/01
1999/12/31