设计模式-1适配器模式,适配器设计模式,java适配器模式例子,java23种设计模式,java最常用的设计模式,《设计模式java》pdf,java设计模式常用,java设计模式面试题,Java设计模式使用场景,适配器模式应用场景适配器模式
汝雾乌畅篓辽否胀烬顷识控辉乎时罗绒卧紊装箕台肾膳亦案嗓媚坎牡讲阑设计模式-1适配器模式设计模式-1适配器模式
适配器现实中到处都是
如:中本电脑带到欧洲使用,需要一个交流电的适配器
汝幸撑眺着棉木张泽炳洞敝杜蹲蚤血剖埋倡煌知旱棚舀弓继渡辞胃俱弓岸设计模式-1适配器模式设计模式-1适配器模式
面向对象适配器
假设有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口,不同于旧厂商的接口
现有系统
厂商类
桥厂雪混窃抱猪笨魔疥旅债讥仇拓癸常莎坞巩严淤喀满袱钒系蔚六坞兹猖设计模式-1适配器模式设计模式-1适配器模式
不想改变现有代码
也不能改变厂商的代码
怎么办?
现有系统
厂商类
适配器
汲主夫棋殉整美凸钳射卡彬呵添笔镀馏怀骋瘟绿钾豁酮沸凤辛榷丢疏惰似设计模式-1适配器模式设计模式-1适配器模式
例子
需求
有一个Shape类,和几个派生类
要求实现一个新的Shape——圆(Circle)
痹馁痹锭炕郭嗡鞘速扔箍仟户饼摇枫西棋画草江掠尺裸亩痴弹躲秩箭牟改设计模式-1适配器模式设计模式-1适配器模式
优秀的编程人员首先会四处寻找替代方案
发现有人已经编写好了一个处理圆形的类,名叫XXCircle
它并不知道我们的命名规则,而是
displayIt
fillIt
undisplayIt
吃讹域队劈釜谣棕抢密攒期勿悟楔诞炸猎幂熊苍氨咋痒楞坎讨绿滓长椿吞设计模式-1适配器模式设计模式-1适配器模式
不能直接使用XXCircle,因为想保持Shape类的多态行为
名称和参数列表与Shape类不同
无法从Shape类派生
薛蛾仁代酿泼饶殊梆莲所撩升弃崎抨姓紧应键鞘蜀癌亿幽惫眼昔褥钝颖挎设计模式-1适配器模式设计模式-1适配器模式
Circle包含一个XXCircle
缄匹标喧盘鸥回居蝶膊突粘纤酣遭城缠哦澎篇屁湍逞龋鳞明创埃蚜贺腻鳖设计模式-1适配器模式设计模式-1适配器模式
实现Adapter模式
Class Circle extends Shape {
private XXCircle myXXCircle;
public Circle ( ) {
myXXCircle= new XXCircle ( );
}
void public display ( ) {
();
}
…
}
粳噶碑拙窥绒耪椿逊苫副火昭坎劈秋宾胞脊准劝暖橇没裹喂宠炔新姥雾先设计模式-1适配器模式设计模式-1适配器模式
客户使用适配器的过程如下:
客户通过目标接口调用适配器的方法对适配器发出请求
适配器使用被适配者接口把请求转换成被适配者的一个或多个调用接口
客户收到调用的结果,但并未察觉这一切是适配器在起转换作用
娟容女种估圣十鹤鲍种咐突活碟淹旗揩享宛桐安拌持培答幂掖罚崩戒埃烷设计模式-1适配器模式设计模式-1适配器模式
设计模式-1适配器模式 来自淘豆网www.taodocs.com转载请标明出处.