现实中适配器存在很多。就好像变压器,我想读这篇文章的你,很可能是一名学生(起码曾经是吧
)。因为现在正好在宿舍写这篇blog。我所在的宿舍是会限电的,电压高了会跳闸,不能使用像电
磁炉这样的设备,你懂的,大学里,偶尔宿舍成员在宿舍撮一顿,不能用些煮东西的设备,太没人
性了有木有(吐槽下学校的制度),但是,网上有一些称为“变压器”的东西,可以帮你解决这个
麻烦。变压器能够转变电压。比如把220v的变成110v;因为有了它,宿舍才能吃上顿大锅饭呐!
这里变压器的工作就像适配器模式做的工作一样,所以常常称适配器模式为变压器模式。
再用head first上的例子,更形象些。
面向对象适配器:
假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所涉
及出来的接口,不同于旧厂商的接口。
然后,我们不想改变现有的代码,也不能改变厂商的代码,所以该怎么样才能解决这个问
题。可以再写一个类,将新厂商接口转变为你所期望的接口。
这个适配器如同一个中间人,它将现有的系统和厂商类连起来了。
从实例中体会适配器模式:
依旧使用headfirst的例子。有一群鸭子,会呱呱叫,也会飞。给出鸭子的接口: