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

无锡模板网站设计公司站长工具站长之家官网

无锡模板网站设计公司,站长工具站长之家官网,设计公司网站建设模板图,平面设计机构培训适配器设计模式是一种结构型设计模式,其作用是让原本由于接口不兼容而无法一起工作的类能够协同合作。它就像一个 “转换器”,将一个类的接口转换成客户希望的另一个接口。适配器模式的结构适配器模式主要包含以下三个角色:目标接口&#xff…
适配器设计模式是一种结构型设计模式,其作用是让原本由于接口不兼容而无法一起工作的类能够协同合作。它就像一个 “转换器”,将一个类的接口转换成客户希望的另一个接口。

适配器模式的结构

适配器模式主要包含以下三个角色:
  • 目标接口(Target):客户所期望的接口,目标可以是具体的或抽象的类,也可以是接口。
  • 需要适配的类(Adaptee):包含了现有的接口,但是这个接口和目标接口不兼容。
  • 适配器(Adapter):能够将 Adaptee 的接口转换成 Target 的接口。

适配器模式的实现方式

适配器模式有两种实现方式,分别是类适配器和对象适配器。下面通过 Java 代码来详细说明这两种实现方式。

类适配器(使用继承)

类适配器使用多重继承来适配两个接口。不过在 Java 里,由于不支持多重继承,类适配器只能通过继承一个类并实现另一个接口来达成。
// 目标接口
interface Target {void request();
}// 需要适配的类
class Adaptee {public void specificRequest() {System.out.println("特殊请求");}
}// 类适配器
class ClassAdapter extends Adaptee implements Target {@Overridepublic void request() {// 调用父类的方法specificRequest();}
}// 客户端代码
public class ClassAdapterClient {public static void main(String[] args) {Target target = new ClassAdapter();target.request(); // 输出: 特殊请求}
}

对象适配器(使用组合)

对象适配器通过组合来实现适配器功能,也就是在适配器类中持有需要适配的类的实例。

// 目标接口
interface Target {void request();
}// 需要适配的类
class Adaptee {public void specificRequest() {System.out.println("特殊请求");}
}// 对象适配器
class ObjectAdapter implements Target {private Adaptee adaptee;public ObjectAdapter(Adaptee adaptee) {this.adaptee = adaptee;}@Overridepublic void request() {adaptee.specificRequest();}
}// 客户端代码
public class ObjectAdapterClient {public static void main(String[] args) {Adaptee adaptee = new Adaptee();Target target = new ObjectAdapter(adaptee);target.request(); // 输出: 特殊请求}
}

适配器模式的适用场景

适配器模式适用于以下几种情况:
  • 你想要使用一个已经存在的类,但是它的接口和你的需求不相符。
  • 你想创建一个可复用的类,这个类能够和其他不相关的类或者不可预见的类(也就是那些接口不一定兼容的类)协同工作。
  • 你需要使用几个已经存在的子类,但是对每个子类进行适配的话不切实际。在这种情况下,你可以使用对象适配器来适配父类的接口。

适配器模式的优缺点

优点
  • 可以让两个没有关联的类一起运行。
  • 提高了类的复用性。
  • 灵活性和扩展性都非常好,符合开闭原则。
缺点
  • 过多地使用适配器,会让系统变得零乱,不易整体进行把握。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果出现太多这样的情况,会给维护带来困扰。
  • 由于 Java 至多继承一个类,所以至多只能适配一个适配者类,而且目标类必须是抽象类。
http://www.dtcms.com/wzjs/62625.html

相关文章:

  • 百度权重5的网站能卖多少钱网推app
  • 做指甲的网站夸克浏览器网页版入口
  • 做网站怎样赚卖流量百度网
  • 如何给网站做快速排名深圳白帽优化
  • 做网站自己买服务器好还是用别人的长沙seo网络公司
  • 高明网站开发公司手机网站排名优化
  • 便宜电商网站建设网站统计代码
  • 中铁建设集团官方网站百度贴吧热线客服24小时
  • 建站平台上建设的网站可以融资吗网络营销效果评估
  • 厦门企业网站建设补贴品牌互动营销案例
  • 四川营销型网站建设免费推广的网站有哪些
  • 老网站改版启用二级域名怎么制作一个网站
  • 徐水区住房和城乡建设局网站北京网站推广排名服务
  • 凡科网做的网站能直接用吗站长统计app进入网址新版小猪
  • discuz网站ip营销网站搭建
  • 美食网站html代码个人代运营一般怎么收费
  • 乐清网站设计公司哪家好seo优化包括哪些内容
  • 上海做网站待遇健康码防疫核验一体机
  • 公安网站备案服务类型上海百度公司总部
  • 商城网站模板下载互联网推广公司靠谱吗
  • 长沙哪家网站设计好网站seo优化网站
  • 机票网站建设seo爱站网
  • 郑州好的企业网站建设谷歌海外推广怎么做
  • 做自媒体小视频哪个网站比较赚钱百度竞价排名价格
  • 群晖wordpress连接外网教程苏州seo关键词优化排名
  • 做旅游网站的设计感想重庆seo网络优化师
  • 腾讯云手动搭建wordpress个人站点营销系统
  • 网站建设如何获取客户西安企业seo
  • 阜新市网站建设怎么用网络推广业务
  • 寿县有做网站开发的吗百度移动端排名