适配器模式(Adapter Pattern)

    适配器模式包含两种,一种是类适配器,另一种是对象适配器。是通过类的继承实现的适配,而对象适配器是通过对象间的关联关系,组合关系实现的适配。二者在实际项目中都会经常用到,由于对象适配器是通过类间的关联关系进行耦合的,因此在设计时就可以做到比较灵活,而类适配器就只能通过覆写源角色的方法进行拓展,在实际项目中,对象适配器使用到的场景相对较多。在iOS开发中也推荐多使用组合关系,而尽量减少继承关系,这是一种很好的编程习惯,因此我在这里只介绍对象适配器,想了解更多的关于类适配器的话,请自行Google之。

    简例

    • Target目标角色 该角色定义把其他类转换为何种接口,也就是我们的期望接口。
    • Adaptee源角色 你想把“谁”转换成目标角色,这个“谁”就是源角色,它是已经存在的、运行良好的类或对象。
    • Adapter适配器角色 适配器模式的核心角色,其他两个角色都是已经存在的角色,而适配器角色是需要新建立的,他的职责非常简单:把源角色转换为目标角色。

    适配器模式优点

    • 增加了类的透明性。我们访问的是目标角色,但是实现却在源角色里。
    • 提高了类的复用度。源角色在原有系统中还是可以正常使用的。
    • 灵活性非常好。不想要适配器时,删掉这个适配器就好了,其他代码不用改。

    Adaptee

    main