适配器模式类图与代码

某软件系统中,已设计并实现了用于显示地址信息的类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();
    }
}
相关推荐
MaxHua2 分钟前
JAVA开发处理金额的数据类型你知道多少?
java·后端
ZhengEnCi2 分钟前
LeetCode_3347_执行操作后元素的最高频率II完全解析-从暴力枚举到差分数组优化的算法进阶利器
算法
围巾哥萧尘9 分钟前
英语老师的秘密武器:Trae智能体写作批改智能体 (改作文一条龙)🧣
设计模式
oak隔壁找我10 分钟前
公司级 Maven Parent POM 设计指南
java·后端
是Dream呀20 分钟前
基于代理技术的学术平台合规数据高效采集实践 —— 以 Google Scholar 文献获取为例
算法
软行22 分钟前
LeetCode 每日一题 166. 分数到小数
数据结构·c++·算法·leetcode·哈希算法
zl97989923 分钟前
SpringBoot-Web开发之内容协商
java·spring boot
bb456b24 分钟前
Snipaste (截图贴图工具) 精准截图 中文免费版
java·工具·贴图
Miku1627 分钟前
吴恩达Agentic AI课程Module1学习笔记
人工智能·设计模式·agent