美文网首页
适配器模式 Adapter

适配器模式 Adapter

作者: cilla123 | 来源:发表于2018-04-19 09:50 被阅读0次

    一、概述

    适配器模式的作用是解决两个对象间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个对象可以一起工作。

    举个例子:香港的插头和国内的插口不一样。如果从香港买了一个电器,我们会发现充电器无法插在家里的插座上,为此而改造家里的插座显然不方便,所以我们需要一个转换插头。

    何时使用:

    1、系统需要使用现有的类,而此类的接口不符合系统的需要

    2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,这些源类不一定有一致的接口。

    3、通过接口转换,将一个类插入另一个类系中。(比如老虎和飞禽,现在多了一个飞虎,在不增加实体的需求下,增加一个适配器,在里面包容一个虎对象,实现飞的接口。)

    优点:

    1、可以让任何两个没有关联的类一起运行。

    2、提高了类的复用。

    3、增加了类的透明度。

    4、灵活性好。

    缺点:过多地使用适配器,会让系统非常混乱,不容易整体进行把控。比如,明明看到调用的是 A 接口,其实内部被适配成了 B 接口的实现,一个系统如果太多出现这种情况,就会是一场灾难难以维护。因此如果不是很有必要,可以不使用适配器,而是直接对系统进行重构。

    二、运用

    通过上述例子,我们可以知道适配器模式有三个角色:

    目标角色(Target):国内的电器插头

    源角色(Adaptee): 香港的电器插头

    适配器角色(Adapter): 把香港的电器插头转成更小国内的电器插头,来适配国内的插座

    目标角色实现

    由Target接口实现目标角色,用户期待更小的电器插头。

    源角色实现

    Adaptee 属于更大的港式的电器插头,这和用户所期望的不同。所以这里需要引入适配器,去转换成用户所期待的目标接口。

    适配器实现

    Adapter 类继承了 Target,重写 small 函数,最后通过适配器,把港式big转成了大陆的small了。

    test:

    相关文章

      网友评论

          本文标题:适配器模式 Adapter

          本文链接:https://www.haomeiwen.com/subject/wgiikftx.html