适配器模式类图与代码

某软件系统中,已设计并实现了用于显示地址信息的类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();
    }
}
相关推荐
叶小鸡2 分钟前
小鸡玩算法-力扣HOT100-动态规划(上)
算法·leetcode·动态规划
砍材农夫3 分钟前
物联网 基于netty构建mqtt协议规范(主题通配符订阅)
java·前端·javascript·物联网·netty
LuminousCPP8 分钟前
数据结构 - 线性表第三篇:基于顺序表实现 C 语言通讯录(基础功能篇)
c语言·数据结构·经验分享·笔记·算法
_日拱一卒13 分钟前
LeetCode:114二叉树展开为链表
java·开发语言·算法
霸道流氓气质13 分钟前
业务链路追踪日志设计模式 — 从原理到实践
设计模式
SamDeepThinking18 分钟前
面试官问Bean线程安全,你该从架构角度回答
java·后端·面试
无小道22 分钟前
Redis——哈希类型相关指令
redis·算法·哈希算法
敖正炀24 分钟前
ArrayList 与 LinkedList 源码全景:从数据结构选择到性能分歧的完整代码路径
java
凌波粒24 分钟前
LeetCode--513.找树左下角的值(二叉树)
java·算法·leetcode
敖正炀24 分钟前
HashMap 红黑树化与退化
java