适配器模式类图与代码

某软件系统中,已设计并实现了用于显示地址信息的类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();
    }
}
相关推荐
KaMeidebaby6 小时前
卡梅德生物技术快报|PD1 单克隆抗体定制配套 N 糖全谱质控开发
前端·人工智能·算法·数据挖掘·数据分析
8Qi87 小时前
LeetCode 235. 二叉搜索树的最近公共祖先(LCA)
算法·leetcode·二叉树·递归·二叉搜索树·lca·迭代
bIo7lyA8v7 小时前
算法稳定性分析中的随机扰动建模的技术8
算法
科研online8 小时前
基于多源数据和XGBoost-SHAP分析中国大陆绿地碳汇空间变异影响因素的非线性相关性与尺度差异
算法·学习方法
Cthy_hy8 小时前
拓扑排序超详解:原理 + Kahn 贪心算法
python·算法·贪心算法
三品吉他手会点灯9 小时前
C语言学习笔记 - 43.运算符与表达式 - 运算符1 - 运算符的分类和简单介绍
c语言·笔记·学习·算法
心之伊始9 小时前
Java 后端接入大模型:从 Token、并发到推理成本的完整估算方法
java·spring boot·性能优化·大模型·llm
VkN2X2X4b9 小时前
算法复杂度的实验验证与误差分析的技术8
算法
其利天下技术9 小时前
风扇灯无刷电机自适应算法实战指南
算法·cocos2d·无刷电机自适应算法·bldc驱动自适应算法·其利无刷电机驱动算法
8Qi89 小时前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包