适配器模式(Adapter)

[b]一、 引入[/b]
假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所涉及出俩的接口,不同于旧厂商的接口:
[img]http://dl2.iteye.com/upload/attachment/0102/2684/601f59d4-c693-3293-a226-1f18b95de0f4.bmp[/img]

我们不想改变现有的代码,也不能改变新厂商的代码,这时可以写一个类,将新厂商接口转换成已有系统需要的接口。
[img]http://dl2.iteye.com/upload/attachment/0102/2686/be6f0470-aa4d-3e48-8db6-04f601cdaabc.bmp[/img]

神奇的是中间这个适配器(Adapter),既表现的像期望的接口(实现期望的接口),又能和实际的接口沟通(引用实际的接口对象,调用其方法)。

[b]二、 定义[/b]
[color=red]适配器模式:[/color]将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

现在来看适配器模式的类图:
[img]http://dl2.iteye.com/upload/attachment/0102/2688/28609af1-830b-3f6d-996f-5c8a3273d038.bmp[/img]

上面我们看到的都是对象适配器。实际上有两种适配器,一种是上面讲到的对象适配器,还有一种类适配器。类适配器需要多重继承才能实现,这在java中是不可能的,所以没有讲述,类适配器模式的类图:
[img]http://dl2.iteye.com/upload/attachment/0102/2690/0e0c5354-9d84-3d37-ad7d-02ac20ba65d0.bmp[/img]

参考资料:
《HeadFirst设计模式》
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值