设计模式之(9)——适配器模式
定义:适配器模式是将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作,在软件设计中我们需要将一些“现存的对象”放到新的环境中,而新环境要求的接口是现对象所不能满足的,我们可以使用这种模式进行接口适配转换,使得“老对象”符合新环境的要求。
为阿巴嘎等地区用户提供了全套网页设计制作服务,及阿巴嘎网站建设行业解决方案。主营业务为网站建设、成都做网站、阿巴嘎网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
使用场景:1、系统需要使用现有的类,而此类的接口不符合系统的需要;2、通过接口转换,将一个类插入另一个类中,用电器来打个比喻:有一个电器的插头是三脚的,而现有的插座是两孔的,要使插头插上插座,我们需要一个插头转换器,这个转换器即是适配器。
适配器模式涉及三个角色:
1、源(Adaptee):需要被适配的对象或类型,相当于插头;
2、适配器(Adapter):连接源和目标对象的中间对象,相当于转换器;
3、目标角色(Target):定义了客户端期望的接口,相当于插座;
如何实现呢?
使用继承(类适配器)或者聚合(对象适配器)已有的对象实现想要的目标接口,优先推荐使用对象适配器(基于组合优先于继承)。
适配器模式结构图:
以下我们先以对象适配为例来分析,以下是源码:
package cn.com.pep.model.adapter.a1; /** * * @Title: AdvancedMediaPlayer * @Description: 源对象的接口 * @author wwh * @date 2022-9-5 10:10:14 */ public interface AdvancedMediaPlayer { /** * @Title: playVlc * @Description: * @param filename */ public void playVlc(String filename); /** * @Title: playMp4 * @Description: * @param filename */ public void playMp4(String filename); }
网站标题:设计模式之(9)——适配器模式
网址分享:http://hbruida.cn/article/dscgijp.html