某软件系统中,已设计并实现了用于显示地址信息的类Address,现要求提供基于Dutch语言的地址信息显示接口。为了实现该要求并考虑到以后可能还会出现新的语言的接口,决定采用适配器(Adapter)模式实现该要求,得到如图7.9所示的类图。
【Java代码】
import java.util.*;
Class Address{
public void street(){
//实现代码省略
}
public void zip(){
//实现代码省略
}
public void city(){
//实现代码省略
}
//其他成员省略
}
class DutchAddress {
public void straat() {
//实现代码省略
}
public void postcode() {
//实现代码省略
}
public void plaats() {
//实现代码省略
}
//其他成员省略
}
class DutchAddressAdapter extends DutchAddress {
private Address address;
public DutchAddressAdapter(Address addr) {
address = addr;
}
public void straat() {
address.street();
}
public void postcode() {
address.zip();
}
public void plaats() {
address.city();
}
//其他成员省略
}
class Test {
public static void main(String[] args) {
Address addr = new Address();
DutchAddress addrAdapter=new DutchAddressAdaptor(addr);
System.out.println("\n The DutchAddress\n");
testDutch(addrAdapter);
}
Static voidtestDutch(DutchAddress addr) {
addr.straat();
addr.postcode();
addr.plaats();
}
}