设计模式(三)——Adapter 模式

设计模式(三)——Adapter 模式

 

理解:

一些时候,用户希望能够使用某个类的功能,这个很容易,直接实例化这个类的对象,并调用对象的方法就可以了。但如果用户希望该类所实现的功能点能够符合他定义的接口(或者该类符合他的继承结构,是某个基类的子类),以便他能够使用声明的接口(或者基类)进行对象方法的调用时(或者当进行多态调用时),便遇到问题了——接口不符合(或不是某个类的子类)!

使用Adapter模式,作为中间类,得到的是一个XXAdapter类,该类实现了用户需要的某个接口或者继承了某个基类。而具体的功能是由Adaptee类(类Adapter模式)或者Adaptee对象(对象Adapter模式)实现的。使得用户能够继续使用多态性。

 

注意点:

1、  类Adapter模式,需要使用多重继承,因此,在java中不支持。

2、  Adapter模式是个很有用的模式,但在项目设计阶段尽量少用,其使用一般是在项目的重构阶段或者项目需要与其他已有的项目交互时使用。

3、  Adapter模式最常见用途就是保持多态性。

 

实现方式:

         创建一个具备所需接口(或继承某个基类)的新类,然后包装原有类的方法,这样实际上就包含了被适配的对象(或类的方法)。

 

FacadeAdapter的区别?

1、意图不同:Adapter是为了使不同接口的类能够协同工作而出现的。

         Façade模式是为了简化用户的接口而出现的。

2、设计原则不同:Adapter中,我们必须按照一个已经存在的接口进行设计。

         Façade模式中,我们可以“随心所欲”设计自己的接口。

因此,一个是简化了接口,另一个是转化了一个已有的接口。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值