JAVA高级之设计模式(适配器模式和观察者模式)

目录

1、适配器模式

1.1 什么是适配器模式

1.2 类适配器模式

1.2.1 代码实现

1.2.2 优缺点

1.3 对象适配器模式

1.3.1 代码实现

1.3.2 优缺点

2、观察者模式

2.1 什么是观察者模式

2.2 观察者模式的结构

2.3 案例

2.3.1 需求

2.3.2 如何实现?

2.3.3 案例分析

2.3.4 代码实现

2.3.5 优缺点


1、适配器模式

1.1 什么是适配器模式

适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 做法是将类自己的接口包裹在一个已存在的类中。

适配器模式分为;两种适配器,分别是类适配器模式和对象适配器模式

1.2 类适配器模式

实例:手机充电需要将220V的交流电转化为手机锂电池需要的5V直流电。使用电源适配器,将 AC220v ——> DC5V。

类图

 

 实现方式让Adapter继承Adaptee类,然后再实现Target接口,来实现适配器功能。

 - Adaptee:适配者类,它是需要被访问的、需要被适配的组件. AC220V
- Target:目标接口,当前系统业务所使用的接口,可以是抽象类或接口. DC5V
- Adapter:适配器类,通过继承和实现目标接口,让客户端按照目标接口的方法访问适配者
- Client:客户端,适配器的使用者

1.2.1 代码实现

源角色(Adaptee):现在需要适配的接口。

public class AC220 {
    /**
     * 输出220V交流电
     *
     * @return
     */
    public int output220V() {
        int output = 220;
        return output;
    }
}

目标角色(Target):这就是所期待得到的接口。

public interface DC5 {
    /**
     * 输出5V直流电(期待得到的接口)
     *
     * @return
     */
    int output5V();
}

 类适配器:适配器类是本模式的核心。适配器把源接口转换成目标接口。

public class PowerAdapter extends AC220 implements DC5 {
    /**
     * 输出5V直流电
     *
     * @return
     */
    @Override
    public int output5V() {
        int output = output220V();
        return (output / 44);
    }
}

测试类适配器

public class TestClassAdapter {
    public static void main(String[] args) {
        DC5 dc5 = new PowerAdapter();
        System.out.println("输出电流:" + dc5.output5V() + "V");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanshy123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值