当前位置: 首页 > news >正文

企业设计网站建设大连网站推广优化

企业设计网站建设,大连网站推广优化,合肥做网站设计,wordpress代码压缩目录 模式动机 模式定义 模式结构 代码分析 模式分析 实例 优点 缺点 适用环境 模式应用 模式扩展 总结 模式动机 在软件开发过程中#xff0c;经常会遇到需要使用已有类的功能#xff0c;但这些类的接口不符合当前系统的需求#xff0c;或者需要将不同的类的接…目录 模式动机 模式定义 模式结构 代码分析 模式分析 实例 优点 缺点 适用环境 模式应用 模式扩展 总结 模式动机 在软件开发过程中经常会遇到需要使用已有类的功能但这些类的接口不符合当前系统的需求或者需要将不同的类的接口统一起来的情况。适配器模式正是为了解决这类问题而设计的。通过适配器模式可以将一个类的接口转换成另一个接口从而使原本不兼容的类可以一起工作。 模式定义 适配器Adapter模式是一种结构型设计模式它允许将一个类的接口转换成客户端期望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作。 模式结构 适配器模式包含以下几个主要角色 Target目标接口定义客户端所期待的接口。Adaptee适配者已经存在的类需要适配的类它提供了一些有用的方法但接口不符合客户端的要求。Adapter适配器适配器类它实现了目标接口并将请求转发给适配者类。 类适配器 类适配器通过继承适配者类来实现目标接口。 对象适配器 对象适配器通过在适配器类中包含适配者对象的实例来实现目标接口。 代码分析 类适配器示例 // 目标接口 interface Target {void request(); }// 适配者类 class Adaptee {public void specificRequest() {System.out.println(Adaptee specificRequest);} }// 类适配器 class ClassAdapter extends Adaptee implements Target {Overridepublic void request() {specificRequest();} }// 客户端 public class Client {public static void main(String[] args) {Target target new ClassAdapter();target.request();} } 对象适配器示例 // 目标接口 interface Target {void request(); }// 适配者类 class Adaptee {public void specificRequest() {System.out.println(Adaptee specificRequest);} }// 对象适配器 class ObjectAdapter implements Target {private Adaptee adaptee;public ObjectAdapter(Adaptee adaptee) {this.adaptee adaptee;}Overridepublic void request() {adaptee.specificRequest();} }// 客户端 public class Client {public static void main(String[] args) {Adaptee adaptee new Adaptee();Target target new ObjectAdapter(adaptee);target.request();} } 模式分析 适配器模式的核心思想是通过适配器类来转换接口使得原本不兼容的类可以一起工作。适配器模式有两种实现方式类适配器和对象适配器。类适配器通过继承适配者类来实现目标接口而对象适配器通过在适配器类中包含适配者对象的实例来实现目标接口。 实例 假设有一个旧的音频播放器类只能播放 MP3 格式的音频文件。现在需要扩展该播放器使其能够播放新的音频格式如 VLC 和 MP4。可以通过适配器模式来实现这一需求。 // 目标接口 interface MediaPlayer {void play(String audioType, String fileName); }// 适配者类VLC 播放器 class VlcPlayer {public void playVlc(String fileName) {System.out.println(Playing vlc file. Name: fileName);} }// 适配者类MP4 播放器 class Mp4Player {public void playMp4(String fileName) {System.out.println(Playing mp4 file. Name: fileName);} }// 对象适配器音频播放器适配器 class MediaAdapter implements MediaPlayer {private MediaPlayer advancedMediaPlayer;public MediaAdapter(String audioType) {if (audioType.equalsIgnoreCase(vlc)) {advancedMediaPlayer new VlcPlayer();} else if (audioType.equalsIgnoreCase(mp4)) {advancedMediaPlayer new Mp4Player();}}Overridepublic void play(String audioType, String fileName) {if (audioType.equalsIgnoreCase(vlc)) {((VlcPlayer) advancedMediaPlayer).playVlc(fileName);} else if (audioType.equalsIgnoreCase(mp4)) {((Mp4Player) advancedMediaPlayer).playMp4(fileName);}} }// 原始音频播放器 class AudioPlayer implements MediaPlayer {Overridepublic void play(String audioType, String fileName) {if (audioType.equalsIgnoreCase(mp3)) {System.out.println(Playing mp3 file. Name: fileName);} else if (audioType.equalsIgnoreCase(vlc) || audioType.equalsIgnoreCase(mp4)) {MediaAdapter mediaAdapter new MediaAdapter(audioType);mediaAdapter.play(audioType, fileName);} else {System.out.println(Invalid media. audioType format not supported);}} }// 客户端 public class Client {public static void main(String[] args) {AudioPlayer audioPlayer new AudioPlayer();audioPlayer.play(mp3, beyond.mp3);audioPlayer.play(mp4, alone.mp4);audioPlayer.play(vlc, far far away.vlc);audioPlayer.play(avi, mind.mind);} } 优点 提高类的透明性和复用性通过适配器模式可以将已有的类或接口适配成新的接口提高类的透明性和复用性。灵活性适配器模式使得系统更容易扩展可以在不修改原有代码的情况下引入新的适配器类。开闭原则符合开闭原则可以在不修改现有代码的情况下引入新的适配器类。 缺点 增加系统复杂性适配器模式会增加系统的复杂性因为需要引入额外的适配器类。类的膨胀如果需要适配的类很多可能会导致适配器类的数量增加从而增加系统的维护成本。 适用环境 系统需要使用现有的类但其接口不符合系统的需求。希望增加系统的灵活性和可扩展性。需要将不同的类的接口统一起来。 模式应用 适配器模式在实际开发中应用广泛特别是在以下场景中 遗留系统集成将旧的系统或类集成到新的系统中。框架扩展在不修改框架源码的情况下通过适配器模式扩展框架的功能。第三方库集成将第三方库的接口适配成系统需要的接口。 模式扩展 适配器模式可以与其他设计模式结合使用例如 工厂模式可以使用工厂模式来创建适配器对象从而进一步提高系统的灵活性。装饰器模式可以在适配器的基础上使用装饰器模式进一步增强适配后的对象的功能。 总结 适配器模式通过适配器类将一个类的接口转换成另一个接口使得原本不兼容的类可以一起工作。适配器模式分为类适配器和对象适配器两种实现方式。适配器模式提高了类的透明性和复用性增加了系统的灵活性和可扩展性但在某些情况下会增加系统的复杂性和维护成本。适配器模式适用于需要将不同类的接口统一起来的场景广泛应用于系统集成、框架扩展和第三方库集成等场景中。
http://www.w-s-a.com/news/563512/

相关文章:

  • 高端企业网站定制公司企业网站2000元
  • 成都网站建设:河北省建设工程质量监督网站
  • 四川省建设厅官网信息查询平台北京seo关键词优化外包
  • 网站建设响应式是什么意思wordpress弹窗打开网页
  • 做美工需要参考的网站漳州做网站的公司
  • 用源码建设网站关于网站开发的自我评价
  • 网站设计师图片自助建站编辑器
  • 网站建设的常用技术有哪些深圳建筑工地招工
  • 做软装找图片的网站wordpress 替代
  • 制作网站的后台公众号做视频网站会封吗
  • 广西企业建站邯郸景区网站制作
  • 开发商城网站多少钱城厢区建设局网站
  • 网站外链多的危害天水市建设局网站
  • 网站接入商学交互设计网站
  • 目前最新的网站后台架构技术综述什么网站可以做名片
  • 成都建站长沙做网站美工的公司
  • 湖南省住房与城乡建设厅网站平顶山网站关键词优化
  • 购物网站前台功能模块汕头网站设计电话
  • 网站你懂我意思正能量免费wordpress菜单底部导航代码
  • 一个主机可以建设多少个网站山东高端网站建设
  • 长沙网站建设搭建网络营销做得好的公司
  • 如何做网站的后台管理石家庄seo关键词排名
  • 给自己公司做个网站山东做外贸网站的公司
  • 张家港网站建设培训江苏省建设工程网站系统
  • html个人网站桂林建站
  • 湛江网站优化快速排名wordpress文章页面宽度
  • 自己建网站怎么弄唯品会一家专门做特卖的网站
  • 做文化传播公司网站做搜狗pc网站点
  • 免费的黄冈网站有哪些平台可以聊天呢要查询一个网站在什么公司做的推广怎么查
  • 凡客建站登录入口网站建设先进部门评选标准