Loading

适配器模式初步理解

适配器模式

简介

在软件设计中,为了解决接口不一致的问题,两个软件模块之间往往也需要通过一个适配器类(Adapter)进行适配,这样的模式叫做适配器设计模式

该模式分为两种:

  • 类适配器模式
  • 对象适配器模式

引入

现在有一个类Adaptee,里面有一个方法Operation1

现在要使用类Adaptee的方法Operation1,同时也要使用另一个方法Operation2,而Operation2在类中不存在,怎样解决?

解决方案

  1. 修改类Adaptee,在其中加入方法Operation2(不可取)

因为用户很可能没有该类的源代码,而只有可运行的程序;即使有该类的源代码,修改一个成熟、可靠的类代码,加入新功能的做法只能取得事倍功半的效果


  1. 用一个Target接口声明所有需要的方法,并且用另外一个Adapter类实现Target接口中的所有方法,Adapter继承Adaptee类(类适配器模式)

设计要点:

  • 一个Target接口声明所有需要的方法(Operation1、Operation2)
  • 一个Adapter类继承Adaptee类,并实现Target接口

利用Java的继承原理,Operation1已经被Adapter继承了,所以Adapter类只需要实现Operation2即可,在Adapter中不需要声明Operation1

因为Java语言的特性,如果有两个或两个以上的类Adapter1、Adapter2需要被适配,则不能使用类适配器模式进行设计


  1. 使用对象适配器模式
  • 在Target接口中声明Operation1、Operation2
  • 在Adapter类中,需要实现两个方法Operation1与Operation2,在实现Operation1时,在其代码中实现对Adaptee的Operation1的调用

区别

类适配器模式对被适配对象采用了继承

对象适配器模式对被适配对象采用的是调用,实现类需要实现所有方法

posted @ 2021-04-12 10:53  qinuna  阅读(70)  评论(0编辑  收藏  举报