适配器模式ppt课件.ppt
《适配器模式ppt课件.ppt》由会员分享,可在线阅读,更多相关《适配器模式ppt课件.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。适配器模式适配器模式(Adapter)2023/1/131严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。结构型模式结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。结构型模式分为结构型模式分为类结构
2、型模式类结构型模式和和对象结构型模式对象结构型模式:类类结结构构型型模模式式关关心心类类的的组组合合,由由多多个个类类可可以以组组合合成成一一个个更更大大的的系系统统,在在类类结结构构型型模模式式中中一般只存在继承关系和实现关系。一般只存在继承关系和实现关系。对对象象结结构构型型模模式式关关心心类类与与对对象象的的组组合合,通通过过关关联联关关系系使使得得在在一一个个类类中中定定义义另另一一个个类类的的实实例对象,然后通过该对象调用其方法。例对象,然后通过该对象调用其方法。结构型模式结构型模式严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或
3、突发事件。根根据据“合合成成复复用用原原则则”,在在系系统统中中尽尽量量使使用用组组合合关关系系来来替替代代继继承承关关系系,因因此此大大部分结构型模式都是部分结构型模式都是对象结构型模式对象结构型模式。结构型模式结构型模式严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。结构型模式结构型模式结构型模式简介结构型模式简介 适配器模式适配器模式(Adapter)桥接模式桥接模式(Bridge)组合模式组合模式(Composite)装饰模式装饰模式(Decorator)外观模式外观模式(Facade)享元模式享元模式(Flyweight
4、)代理模式代理模式(Proxy)严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Adapter(适配器适配器)模式模式“不合适的插座不合适的插座”你的电脑的插头是三相的你的电脑的插头是三相的而墙上的插座只有两相的而墙上的插座只有两相的插头和插座的插头和插座的“接口接口”不匹配,怎么办?不匹配,怎么办?严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。Adapter(适配器适配器)模式模式客户客户客户客户适配器适配器适配器适配器请求请求请求请求转换后的请求转换后的请求转换
5、后的请求转换后的请求接口转换接口转换严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。面向对象软件系统的适配问题面向对象软件系统的适配问题 假假设设我我们们已已经经有有一一个个软软件件系系统统,原原来来使使用用了了一一个个第第三三方方类类库库A。现现在在有有一一个个新新的的第第三三方方类库类库B,其功能等各方面都更加强大。,其功能等各方面都更加强大。我我们们希希望望用用B来来替替换换A,以以改改善善我我们们的的系系统统。但是但是B的接口与的接口与A不一样。那怎么办呢?不一样。那怎么办呢?严格执行突发事件上报制度、校外活动报批制度等相
6、关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。办法之一办法之一BNew System严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。BAdapter办法之二办法之二ASystem严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。BAdapter第二种方案的优点第二种方案的优点System不需要修改代码不需要修改代码不需要修改代码不需要修改代码新代码新代码严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行
7、为或突发事件。办法之三办法之三BSystemB严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。示示 例例鸭子接口鸭子接口public interface Duck public void quack();public void fly();鸭子接口鸭子接口Duck,定义,定义 鸭子具有鸭子具有“鸣叫鸣叫”和和“飞行飞行”方法方法严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。MallardDuck类类public class MallardDuck implement
8、s Duck public void quack()System.out.println(嘎嘎嘎嘎嘎嘎.);public void fly()System.out.println(我在飞哦!我在飞哦!);MallardDuck类简单地类简单地实现了实现了Duck接口接口。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。现在有一种新家伙现在有一种新家伙public interface Turkey public void gobble();public void fly();严格执行突发事件上报制度、校外活动报批制度等相关规章制度。
9、做到及时发现、制止、汇报并处理各类违纪行为或突发事件。WildTurkeypublic class WildTurkey implements Turkey public void gobble()System.out.println(咕咕咕咕咕咕.);public void fly()System.out.println(我在飞,不过飞不远我在飞,不过飞不远);严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。问题?问题?我我们们原原来来有有一一个个程程序序使使用用鸭鸭子子对对象象,现现在在想想让让它它使使用用火火鸡鸡对对象象,但
10、但是是火火鸡鸡与与鸭鸭子子的的接口不同,不能直接使用。接口不同,不能直接使用。写一个火鸡适配器,让火鸡看起来像鸭子写一个火鸡适配器,让火鸡看起来像鸭子严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。火鸡适配器火鸡适配器public class TurkeyAdapter implements Duck Turkey turkey;public TurkeyAdapter(Turkey turkey)this.turkey=turkey;public void quack()turkey.gobble();public void f
11、ly()for(int i=0;i 5;i+)turkey.fly();火鸡适配器包装了一火鸡适配器包装了一个火鸡对象,同时实个火鸡对象,同时实现了鸭子接口。这样现了鸭子接口。这样就可以像使用鸭子一就可以像使用鸭子一样使用火鸡了样使用火鸡了。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。使用适配器使用适配器public class DuckTestDrive public static void main(String args)MallardDuck duck=new MallardDuck();WildTurkey turk
12、ey=new WildTurkey();Duck turkeyAdapter=new TurkeyAdapter(turkey);System.out.println(火鸡说火鸡说.);turkey.gobble();turkey.fly();System.out.println(n鸭子说鸭子说.);testDuck(duck);System.out.println(n火鸡适配器说火鸡适配器说.);testDuck(turkeyAdapter);static void testDuck(Duck duck)duck.quack();duck.fly();需要使用鸭子对象需要使用鸭子对象在需要鸭
13、子对象的在需要鸭子对象的地方使用了火鸡适地方使用了火鸡适配器对象,配器对象,火鸡适火鸡适配器对象包装了一配器对象包装了一个火鸡对象,所以个火鸡对象,所以实际使用的是火鸡实际使用的是火鸡对象。对象。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。分分 析析被适配者被适配者火鸡接口火鸡接口客户客户要使用鸭子要使用鸭子对象的程序对象的程序适配器适配器把火鸡装把火鸡装扮成鸭子扮成鸭子目标接口目标接口:鸭子接口鸭子接口两者无耦合彼此不必知道对方的存在两者无耦合两者无耦合彼此不必知道对方的存在彼此不必知道对方的存在严格执行突发事件上报制度、校
14、外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。试试看试试看如果希望把鸭子包装成火鸡该怎么做?如果希望把鸭子包装成火鸡该怎么做?写出你的代码写出你的代码DuckAdapter严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。DuckAdapterimport java.util.Random;public class DuckAdapter implements Turkey Duck duck;Random rand;public DuckAdapter(Duck duck)this.duck=
15、duck;rand=new Random();public void gobble()duck.quack();public void fly()if(rand.nextInt(5)=0)duck.fly();严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。别名:包装器别名:包装器(Wrapper),变压器模式变压器模式概念理解概念理解适配器模式适配器模式把把一一个个类类的的接接口口(被被适适配配者者)变变换换成成客客户户端端所所期期待待的的另另一一种种接接口口(目目标标),从从而而使使原原本本因因接接口口原原因因不不匹匹配配而而
16、无无法法一一起起工作的两个类能够一起工作。工作的两个类能够一起工作。该模式中涉及有目标、被适配者和适配器。该模式中涉及有目标、被适配者和适配器。适配器模式的关键是建立一个适配器,这个适适配器模式的关键是建立一个适配器,这个适配器实现了目标接口并包含有被适配者的引用。配器实现了目标接口并包含有被适配者的引用。严格执行突发事件上报制度、校外活动报批制度等相关规章制度。做到及时发现、制止、汇报并处理各类违纪行为或突发事件。适配器模式的结构与使用适配器模式的结构与使用 适配器模式的两种形式:适配器模式的两种形式:类的适配器模式类的适配器模式对象的适配器模式对象的适配器模式 严格执行突发事件上报制度、校
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 适配器 模式 ppt 课件
限制150内