适配器模式(Adapter Pattern)

标签: 设计模式


适配器模式一种比较简单的结构型模式

  1. 解决已有类复用,但接口不符合客户类需求的场景,这时需要一个“适配器”来转换接口,类似与手机充电口适配器。
  2. 不宜过多使用,如果需要转换的类比较多,建议重构系统。
  3. 新设计的系统不要使用适配器模式,而是构想更好的设计。
  4. 更好的复用,更好的扩展性。

UML类结构图
834443-20170329213125014-1567279339.png

  也存在另一种适配器。在java中,继承一个抽象类的子类中, 必须实现其所有抽象方法,但是有些子类不想全部实现。这种情况下就需要设计一个中间适配器,把不实现的方法做一个缺省处理,或者抛出一个MethodNotSupportException。

转载于:https://www.cnblogs.com/banyu/p/6641896.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用适配器模式来实现这个功能。具体实现步骤如下: 1. 定义目标接口:定义一个音频播放器接口,其中包含播放音频的方法。 2. 定义适配器类:定义一个适配器类,实现目标接口,并且内部包含一个能够播放mp3格式音频文件的对象。 3. 通过适配器实现播放:创建一个播放器对象,并创建一个适配器对象,并将能够播放mp3格式音频文件的对象传递给适配器对象。然后调用播放器对象的播放方法,播放mp3格式的音频文件。 示例代码如下所示: ```python # 定义目标接口 class AudioPlayer: def play_audio(self, file_name): pass # 定义适配器类 class Mp3PlayerAdapter(AudioPlayer): def __init__(self, mp3_player): self.mp3_player = mp3_player def play_audio(self, file_name): self.mp3_player.play_mp3(file_name) # mp3播放器 class Mp3Player: def play_mp3(self, file_name): print(f"playing mp3 file: {file_name}") # 实现播放 mp3_player = Mp3Player() adapter = Mp3PlayerAdapter(mp3_player) media_player = MediaPlayer() media_player.play_audio("test.mp4") # 播放mp4格式视频文件 adapter.play_audio("test.mp3") # 播放mp3格式音频文件 ``` 在上面的示例中,我们定义了一个目标接口 `AudioPlayer`,其中包含一个播放音频的方法 `play_audio`。然后我们定义了一个适配器类 `Mp3PlayerAdapter`,实现了目标接口,并且内部包含一个能够播放mp3格式音频文件的对象 `Mp3Player`。在实现播放时,我们先调用 `MediaPlayer` 对象的 `play_audio` 方法,播放mp4格式视频文件,然后通过适配器对象调用 `play_audio` 方法,播放mp3格式音频文件。这样就实现了通过适配器模式让播放器能够播放mp3格式音频文件的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值