【小知识】通过简单案例学习适配器模式

简介: 【小知识】通过简单案例学习适配器模式

前言


  适配器模式是两个不复杂的接口之间的基本结构模式。主要功能是将一个类的接口转化成希望的其他一个接口。


适配器模式


  适配器模式定义一个包装类,用于包装不兼容接口的对象,主要作用是把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一起工作。


示例


  正好在学习适配器模式,看有个相关的示例,于是记录下来,分享给大家。


举例如下:


  某软件系统中,已设计并实现了用于显示地址信息的类 Address(如图 下图 所示),现要 求提供基于 Dutch 语言的地址信息显示接口。为了实现该要求并考虑到以后可能还会出现新 的语言的接口,决定采用适配器(Adapter)模式实现该要求,得到如图所示的类图。


image.png


分析


  首先我们文中的两个类创建出来,创建结果如下: Address类


class Address {
    public void street() {
        System.out.println("Address---street");
    }
    public void zip() {
        System.out.println("Address---zip");
    }
    public void city() {
        System.out.println("Address---city");
    }
}


DutchAddress类


class DutchAddress {
    public void straat() {
        System.out.println("DutchAddress----straat");
    }
    public void postcode() {
        System.out.println("DutchAddress----postcode");
    }
    public void plaats() {
        System.out.println("DutchAddress----plaats");
    }
}


DutchAddressAdapter适配器类,需要继承DutchAddress。


class DutchAddressAdapter extends DutchAddress {
    private Address address;
    public DutchAddressAdapter(Address addr) {
        address = addr;
    }
    @Override
    public void straat() {
        address.street();
    }
    @Override
    public void postcode() {
        address.zip();
    }
    @Override
    public void plaats() {
        address.city();
    }
}


运行测试


  如下两个方法,点击运行测试,会将DutchAddress 转换成Address。


public static void main(String[] args) {
        Address address = new Address();
        DutchAddress dutchAddress = new DutchAddressAdapter(address);
        System.out.println("The DutchAddress");
        testDutch(dutchAddress);
    }
    public static void testDutch(DutchAddress addr) {
        addr.straat();
        addr.postcode();
        addr.plaats();
    }


输出结果如下:


image.png



目录
相关文章
|
7月前
|
Java
深入浅出适配器模式
深入浅出适配器模式
51 0
|
设计模式 Java 关系型数据库
【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——适配器模式Adapter(原理讲解+应用场景介绍+案例介绍+Java代码实现)
148 0
|
7月前
|
设计模式 前端开发 Java
Java设计模式【十一】:外观模式
Java设计模式【十一】:外观模式
46 0
|
设计模式 Java Spring
设计模式笔记 -- 适配器模式
适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主要目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作,也可以叫做包装器模式
|
设计模式 Java
Java设计模式中的适配器模式:实现与实际应用案例
Java设计模式中的适配器模式:实现与实际应用案例
|
前端开发
前端学习案例3-适配器模式
前端学习案例3-适配器模式
57 0
前端学习案例3-适配器模式
|
前端开发
前端学习案例2-适配器模式
前端学习案例2-适配器模式
60 0
前端学习案例2-适配器模式
|
前端开发
前端学习案例1-适配器模式
前端学习案例1-适配器模式
43 0
前端学习案例1-适配器模式
|
设计模式 算法 API
设计模式学习(十二):Decorator装饰器模式
假如现在有一块蛋糕,如果只涂上奶油,其他什么都不加,就是奶油蛋糕。如果加上草莓,就是草莓奶油蛋糕。如果再加上一块黑色巧克力板,上面用白色巧克力写上姓名,然后插上代表年龄的蜡烛,就变成了一块生日蛋糕。
设计模式学习(十二):Decorator装饰器模式
|
设计模式 算法 前端开发
设计模式:以桥接模式和访问者模式为例,看设计模式在微信小游戏版本迭代中的应用(下)
设计模式:以桥接模式和访问者模式为例,看设计模式在微信小游戏版本迭代中的应用
99 0