适配器模式类图与代码

某软件系统中,已设计并实现了用于显示地址信息的类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();
    }
}
相关推荐
代码山河几秒前
调试技巧:IDEA Debug模式入门与使用
java·学习·架构·教程·面向对象·项目
重生之小比特2 分钟前
【算法拾光 7】双指针|两数之和 II - 输入有序数组 + 三数之和
算法
文丑颜不良啊12 分钟前
LeetCode851~875题目解析
java·leetcode
技术老孙14 分钟前
给 Agent 装上对话框 —— AgentScope-Java 接入 Spring Boot 与 SSE 流式实战
java·开发语言·spring boot
Carl_奕然21 分钟前
【智能体】Loop 的四种设计模式之:Verification Loop(2026 最新版)
人工智能·python·设计模式
Navigator_Z27 分钟前
LeetCode //C - 1304. Find N Unique Integers Sum up to Zero
c语言·算法·leetcode
是2的10次方啊1 小时前
设计模式与生活③:你的早晨,是一套模板
设计模式
指剑1 小时前
亚麻云之EC2——安全组与密钥对:SSH 端口怎么开才安全,Permission denied (publickey) 和连接超时排查
java·安全·ssh
_Evan_Yao9 小时前
Redis 缓存穿透、击穿、雪崩,一次讲清!
java·spring·mybatis