设计模式-结构型-适配器模式-Adapter

地址类

java 复制代码
public class Address {
    public void street() {
        System.out.println("普通的街道");
    }

    public void zip() {
        System.out.println("普通的邮政编码");
    }

    public void city() {
        System.out.println("普通的城市");
    }
}

荷兰地址类

java 复制代码
public class DutchAddress {
    public void straat() {}

    public void postcode() {}

    public void plaats() {}
}

荷兰地址适配器类

java 复制代码
public class DutchAddressAdapter extends DutchAddress {
    private Address address;

    public DutchAddressAdapter(Address address) {
        this.address = address;
    }

    public void straat() {
        address.street();
    }

    public void postcode() {
        address.zip();
    }

    public void plaats() {
        address.city();
    }
}

演示类

java 复制代码
public class Test {
    public static void main(String[] args) {
        Address addr = new Address();
        DutchAddress addrAdapter = new DutchAddressAdapter(addr);
        System.out.println("the DutchAddress");
        testDutch(addrAdapter);
    }

    private static void testDutch(DutchAddress addr) {
        addr.straat();
        addr.postcode();
        addr.plaats();
    }
}

演示结果

相关推荐
q***062915 分钟前
解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域
java·前端·spring
还是鼠鼠24 分钟前
Redisson实现的分布式锁能解决主从一致性的问题吗?
java·数据库·redis·分布式·缓存·面试·redisson
d***956224 分钟前
windows配置永久路由
java
王桑.1 小时前
IO流高级流--转换流
java
qq_12498707532 小时前
基于SpringBoot技术的企业请假审批管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·信息可视化·毕业设计
BBB努力学习程序设计2 小时前
Java方法详解:提升代码复用性与可读性的利器
java
BBB努力学习程序设计2 小时前
Java运算符完全指南:让代码学会“计算”和“判断”
java
用户84913717547163 小时前
ThreadLocal 源码深度解析:JDK 设计者的“妥协”与“智慧”
java·后端
用户0304805912633 小时前
# 【Maven避坑】源码去哪了?一文看懂 Maven 工程与打包后的目录映射关系
java·后端
v***55343 小时前
springboot使用logback自定义日志
java·spring boot·logback