某软件系统中,已设计并实现了用于显示地址信息的类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();}
}