欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 适配器模式

适配器模式

2025/4/17 7:18:40 来源:https://blog.csdn.net/weixin_74144099/article/details/142459832  浏览:    关键词:适配器模式

适配器模式(Adapter Pattern)

将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,适配器模式分为类结构型模式(继承)和对象结构型模式(组合)两种,前者(继承)类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。

别名也可以是Wrapper,包装器

适配器模式的主要角色

  • Target(目标接口):这是客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。
  • Adaptee(被适配者/适配对象):需要适配的类,它的接口与Target接口不兼容。
  • Adapter(适配器):通过包装一个Adaptee实例来实现Target接口。适配器把Adaptee的接口转换成Target接口。

案例

电影播放器接口及其实现类:

public interface Player {String play();
}
public class MoviePlayer implements Player{@Overridepublic String play() {System.out.println("正在播放电影");String content = "你好";return content;}
}

现在需要一个翻译器将中文翻译成英文:

public interface Translater {String translate(String content);
}
public class ZH_ENGTranslater implements Translater{@Overridepublic String translate(String content) {if("你好".equals(content)){return "hello";}return "";}
}

在不改变原有接口的条件下使用适配器完成翻译:

1)类结构模式:

public class EnglishMovieAdaptor extends ZH_ENGTranslater implements Player {MoviePlayer player;EnglishMovieAdaptor(MoviePlayer player){this.player = player;}@Overridepublic String play() {String content = player.play();String translate = translate(content);return translate;}
}

2)对象结构模式(推荐使用):

public class EnglishMovieAdaptor01 implements Player {private static ZH_ENGTranslater translater = new ZH_ENGTranslater();MoviePlayer player;EnglishMovieAdaptor01(MoviePlayer player){this.player = player;}@Overridepublic String play() {String content = player.play();String translate = translater.translate(content);return translate;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词