适配器模式类图与代码

某软件系统中,已设计并实现了用于显示地址信息的类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();
    }
}
相关推荐
梦雨生生11 分钟前
java开发工具(学习第一天)
java·开发语言·学习
她说可以呀38 分钟前
Spring-ai-alibaba文生图
java·人工智能·spring
营养充电站1 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
人工智能·算法·docker·jupyter
技术小黑2 小时前
RNN算法实战系列05 | 天气预测
人工智能·rnn·算法
松仔log3 小时前
Java中级——组合和继承
android·java·开发语言
不才不才不不才3 小时前
Spring 源码系列(16): doDispatch 全流程——一次请求的主干链路
java·后端·spring
snow@li3 小时前
HikariCP:高性能数据库连接池全景深入梳理
java·数据库
edwarddamon4 小时前
Spring Cloud 配置热更新与 Bean 代理机制梳理
java·后端
Raas1004 小时前
MAIGateway,魔芋企业级AI网关的FinAPI成本竞争力设计
java·后端·网关·api网关·魔芋ai·finapi·mai gateway