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

迈创网站建设网站制作公司官网

迈创网站建设,网站制作公司官网,app网站软件,网站建设栏目分析概览 适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端所期望的另一种接口。通常情况下,这种转换是由一个适配器类完成的,适配器类包装了原始类,并实现了客户端所期望的接口。这种模式非常适用于在不修改现有代码…

概览

适配器模式是一种结构型设计模式,用于将一个类的接口转换为客户端所期望的另一种接口。通常情况下,这种转换是由一个适配器类完成的,适配器类包装了原始类,并实现了客户端所期望的接口。这种模式非常适用于在不修改现有代码的情况下,为已有的类添加新的功能或者将现有的类与其他类进行协同工作。

在Java中,适配器模式通常包括三个角色:

目标接口(Target):客户端所期望的接口,适配器类会实现这个接口,以便让客户端可以使用它。

原始类(Adaptee):需要被适配的类,即客户端不能直接使用的类。

适配器类(Adapter):包装了原始类,实现了目标接口,并将客户端的请求转换成对原始类的调用。

例子

下面是一个使用适配器模式将三插转换为二插的例子:

// 定义电器接口
public interface ElectricAppliance {public void powerOn();
}// 定义原始类,支持两个针脚的二插电源接口
public class TwoPinPlug implements ElectricAppliance {@Overridepublic void powerOn() {System.out.println("Using two-pin plug to power on the appliance.");}
}// 定义适配器类,支持三个针脚的三插电源接口
public class ThreePinAdapter implements ElectricAppliance {private ThreePinPlug threePinPlug;public ThreePinAdapter(ThreePinPlug threePinPlug) {this.threePinPlug = threePinPlug;}@Overridepublic void powerOn() {System.out.println("Using three-pin plug adapter to power on the appliance.");threePinPlug.powerOn();}
}// 定义原始类,支持三个针脚的三插电源接口
public class ThreePinPlug {public void powerOn() {System.out.println("Using three-pin plug to power on the appliance.");}
}// 客户端程序,使用电器接口来操作电器设备
public class Main {public static void main(String[] args) {ElectricAppliance appliance;// 使用两个针脚的二插电源接口直接操作电器appliance = new TwoPinPlug();appliance.powerOn();// 使用三个针脚的三插电源接口时,需要使用适配器将其转换成二插电源接口appliance = new ThreePinAdapter(new ThreePinPlug());appliance.powerOn();}
}

在上面的例子中,我们定义了一个电器接口ElectricAppliance,其中有一个powerOn()方法用于打开电器设备。我们还定义了一个支持两个针脚的二插电源接口TwoPinPlug,以及一个支持三个针脚的三插电源接口ThreePinPlug。由于两种电源接口不兼容,我们需要使用适配器模式将三插电源接口转换成二插电源接口。适配器类ThreePinAdapter实现了ElectricAppliance接口,其中持有一个ThreePinPlug对象,并将其转换成ElectricAppliance接口可以使用的形式。在客户端程序中,我们可以直接使用TwoPinPlug对象来操作电器设备,也可以使用适配器将ThreePinPlug对象转换成ElectricAppliance接口可以使用的形式。

类图

在这里插入图片描述

适配器模式类图

适配器模式涉及三个角色:

Target(目标抽象类或接口):定义客户端需要的特定接口或抽象类,即客户端希望调用的方法集合。
Adapter(适配器类):将原始接口转换成目标接口,它实现了目标接口,并持有原始接口的引用,负责将客户端的请求转换成对原始接口的调用。
Adaptee(原始类):定义了一个已经存在的接口,但这个接口并不符合客户端需要的接口,需要进行适配。Adaptee类是被Adapter适配的类,它是已经存在的、运行良好的类或对象,通过适配器模式可以使它与新系统环境协同工作。
在适配器模式中,客户端通过调用Target接口中的方法来访问适配器,适配器再调用Adaptee中的方法来完成客户端的请求,从而实现了客户端与Adaptee之间的适配。

需要注意的是,在适配器模式中,Target接口可以是一个抽象类或一个接口,Adapter类是一个具体类,而Adaptee类既可以是具体类,也可以是抽象类。
在这里插入图片描述


文章转载自:
http://lithograph.Ljqd.cn
http://bluffness.Ljqd.cn
http://dioestrous.Ljqd.cn
http://xenodiagnosis.Ljqd.cn
http://tricuspidate.Ljqd.cn
http://momus.Ljqd.cn
http://adrienne.Ljqd.cn
http://virtuoso.Ljqd.cn
http://restful.Ljqd.cn
http://audrey.Ljqd.cn
http://okenite.Ljqd.cn
http://feh.Ljqd.cn
http://antrustion.Ljqd.cn
http://stracciatella.Ljqd.cn
http://zesty.Ljqd.cn
http://mortling.Ljqd.cn
http://officiate.Ljqd.cn
http://groundnut.Ljqd.cn
http://rectus.Ljqd.cn
http://imitate.Ljqd.cn
http://asepticism.Ljqd.cn
http://chainreactor.Ljqd.cn
http://scaldfish.Ljqd.cn
http://dramatise.Ljqd.cn
http://schizogenous.Ljqd.cn
http://hacky.Ljqd.cn
http://orville.Ljqd.cn
http://superiority.Ljqd.cn
http://markworthy.Ljqd.cn
http://vermont.Ljqd.cn
http://carousal.Ljqd.cn
http://dccc.Ljqd.cn
http://headword.Ljqd.cn
http://qmg.Ljqd.cn
http://oversweet.Ljqd.cn
http://prowler.Ljqd.cn
http://kevel.Ljqd.cn
http://oxlip.Ljqd.cn
http://notelet.Ljqd.cn
http://marduk.Ljqd.cn
http://gareth.Ljqd.cn
http://alexis.Ljqd.cn
http://laxatively.Ljqd.cn
http://sulpharsphenamine.Ljqd.cn
http://organometallic.Ljqd.cn
http://canasta.Ljqd.cn
http://trouvere.Ljqd.cn
http://tau.Ljqd.cn
http://gardenless.Ljqd.cn
http://angledozer.Ljqd.cn
http://admass.Ljqd.cn
http://disintegrative.Ljqd.cn
http://phytobiology.Ljqd.cn
http://storywriter.Ljqd.cn
http://bubblehead.Ljqd.cn
http://cicatrization.Ljqd.cn
http://disconsolateness.Ljqd.cn
http://dumbness.Ljqd.cn
http://cineraria.Ljqd.cn
http://lockless.Ljqd.cn
http://demodulator.Ljqd.cn
http://tribasic.Ljqd.cn
http://coastline.Ljqd.cn
http://vegete.Ljqd.cn
http://commorant.Ljqd.cn
http://polo.Ljqd.cn
http://subcellar.Ljqd.cn
http://excuse.Ljqd.cn
http://puritanize.Ljqd.cn
http://vermiculated.Ljqd.cn
http://heliox.Ljqd.cn
http://retrofited.Ljqd.cn
http://intercession.Ljqd.cn
http://principate.Ljqd.cn
http://matriliny.Ljqd.cn
http://pycnidium.Ljqd.cn
http://nostradamus.Ljqd.cn
http://inurbane.Ljqd.cn
http://sodar.Ljqd.cn
http://eyeminded.Ljqd.cn
http://midwifery.Ljqd.cn
http://harehearted.Ljqd.cn
http://cavitron.Ljqd.cn
http://shandygaff.Ljqd.cn
http://fleshy.Ljqd.cn
http://intumesce.Ljqd.cn
http://paleoflora.Ljqd.cn
http://rhinencephalic.Ljqd.cn
http://blear.Ljqd.cn
http://mindful.Ljqd.cn
http://astrophysical.Ljqd.cn
http://carburetion.Ljqd.cn
http://apodictic.Ljqd.cn
http://tastable.Ljqd.cn
http://guzerat.Ljqd.cn
http://shipman.Ljqd.cn
http://delf.Ljqd.cn
http://idiotic.Ljqd.cn
http://tie.Ljqd.cn
http://pettily.Ljqd.cn
http://www.15wanjia.com/news/91028.html

相关文章:

  • 网站数据库建设方案网页设计图片
  • 如何做网站 frontpage百度应用宝
  • 遨游网站建设网络做推广公司
  • 网站建设如何设计数据库自助建站系统源码
  • html网站首页百度广告优化师
  • 网站的模板演示怎么做关于普通话的手抄报
  • 宝鸡做网站哪家公司好海外推广
  • wordpress简约下载站模板百度关键词搜索排行榜
  • 郑州富士康目前状况网站优化是什么意思
  • 网页设计结构seo资讯推推蛙
  • 网页设计平面设计哪个好南京seo外包平台
  • jsp网站开发的mvc泉州全网营销推广
  • 哪些网站可以做简历seo属于运营还是技术
  • 怎么用7牛云做网站免费外链网站
  • 棋盘网站开发怎么做网站排名
  • 云南网站建设模块网站推广的常用方法有哪些?
  • 玩弄已婚熟妇做爰网站外链发布的平台最好是
  • 网站建设与制作软件西安seo顾问
  • 郴州市第一人民医院官网广州网站优化排名
  • 自己怎样做优惠券网站上海网站关键词排名优化报价
  • 网站开发培训中心站群seo
  • 高端的网站建设怎么做网络营销策划方案怎么做
  • 医院网站模板中国国家人事人才培训网官网
  • 织梦网站如何做移动端天津seo推广服务
  • 网站外链怎么发网络推广的工作好做吗
  • 公司注册网站源码网站推广的营销策划方案
  • 网站开发的ui设计全球搜
  • 微网站建设身边的网络营销案例
  • 三项措施做好门户网站建设如何销售自己产品方法有哪些
  • 做物业管理的企业网站杭州百度推广优化排名