设计模式——Adapter

Adapter(适配器)

Adapter顾名思义,就是使一端能够适应另一端,让他们能够成为一个整体。

面向对象系统的开发提倡的是面向接口(抽象层次)开发,之所以这样做的好处之一就是可以提高业务逻辑的重用性,而不是传统的面向实现的开发,只是但存的去复用系统中的一些算法。

那么不同的系统对外所提供的接口都不尽相同,那么为了能够将已有的组件加入到当前系统中,而该组件对外提供的接口又不能满足当前系统的要求的话,就可以采用适配器模式来将该已存组件的接口转换为可以满足当前系统的接口,从而实现加入到当前系统当中。

而适配器具体的实现方式可分为类级别的适配转换及对象级别的适配转换。类适配采用多继承的方式实现,对象适配采用组合的方式实现。二者各有裨益。

首先类适配,它的好处是实现简单,可以重写被适配的类的方法,方便扩展。另外只需自己本身的实例就可以实现已存组件到目标系统同接口的转换。但是该方式只能实现对一个明确的类的接口的转换,无法实现对其子类实现适配转换的功能。

对象适配,它的好处是可以实现一个适配器类能够实现对多个类接口的转换,即可以实现对其适配的子类也提供同样的功能。坏处就是重写其适配的类的方法。

下边有个例子:

前段时间迷上了2k10, 为了防止我把本本在吃敲坏了。所以打算搞个外接键盘,因为之前用台式机,所以手里有个PS/2接口的键盘,但是我的本本上只对外提供了USB接口,所以如果直接用这个键盘的话是不可能的了。但是我花5块钱买了个U口2P口的东东,问题就解决了。因为它一段对外提供了USB接口,即继承了我本本的对外的接口,而另一端是一个PS/2接口,继承了/集成了我的键盘的接口,而其中间的方形疙瘩,则实现了对数据流的转换。那么这个东西就是所谓的Adapter 了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值