关于设计模式的讨论(1)——适配器模式(Adapter)

    适配器模式是作为两个不兼容的接口的桥梁。适配器模式的设计模式属于结构型模式,它结合里两个独立接口的功能。

    适配器模式涉及到了一个单一的类,这个类负责加入独立的或者不兼容的接口功能,比如说读卡器或者转换器就可以作为电脑和存储盘之间的适配器。简单来说就是一个转换接口。

    适配器模式可以将一个类的接口转换成客户希望的另一个接口,适配器模式可以使得原本由于接口不兼容而不能一起工作的那些类可一起工作。

    一般采取的方式是继承或者依赖。


    比如说在这个图中,我们的MdeiaPlayer是一个有播放功能的接口,AudioPlayer实现了这个接口并且可以播放MP3格式的音乐,对于AdvancedMediaPlayer接口来说,它可以实现播放VLC格式以及MP4格式的内容。那么我们如何使得AudioPlayer不仅仅是播放MP3格式的内容也可以播放MP4、VlC格式的内容呢?换句话说:现在有一个实现可以做到播放MP3,有另一个实现可以做到播放MP4和VLC,那么我们怎样才可以做到把他们统一到一起然后在一个播放器里里面同时播放三种格式呢?

    答案就是采用适配器模式:MediaAdapter:我们同样从MediaPlayer接口中实现一个MediaAdapter类,这个类中创建一个AdvancedMediaPlayer的对象(一个委派)之后对其进行两种格式的判断匹配,并且调用播放。现在MediaAdapter适配器已经可以做到对MP4和VLC的完美支持。下一步就是在AudioPlayer中调用实例化一个MediaAdapter的对象。一边接着完成自己播放MP3的操作,一边通过MediaAdapter适配器完成扩展功能的操作。

    这一套流程就是一个适配器模式的使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值