适配器模式类图与代码

某软件系统中,已设计并实现了用于显示地址信息的类Address,现要求提供基于Dutch语言的地址信息显示接口。为了实现该要求并考虑到以后可能还会出现新的语言的接口,决定采用适配器(Adapter)模式实现该要求,得到如图7.9所示的类图。

【Java代码】

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();
    }
}
相关推荐
Jerry7 分钟前
LeetCode 203. 移除链表元素
算法
Tian_Hang8 分钟前
Eclipse Ditto 物模型相关代码
java·运维·服务器·ide·eureka·eclipse
地平线开发者21 分钟前
征程 6 | 工具链 QAT ObserverBase 源码解析
算法
地平线开发者43 分钟前
【地平线 征程 6 工具链进阶教程】QAT 训练常见问题和排查
算法
地平线开发者44 分钟前
征程 6 | 直方图量化配置与校准实例
算法
Mr-Wanter1 小时前
wsl2 jdk管理工具之sdkman
java·开发语言·sdkman
地平线开发者1 小时前
征程 6E/M Matrix 开发评板使用系列(一):开箱与点亮
算法·自动驾驶
唐青枫2 小时前
Java Future 与 CompletableFuture 实战指南:从异步结果到任务编排
java
Jerry2 小时前
LeetCode 59. 螺旋矩阵 II
算法