思想:使两个原本不兼容的东西都依赖于适配器后, 通过适配器让两者兼容起来;
- 举个例子: 手机充电要求电压在5V, 但家用电压都是220V, 于是手机充电器(适配器) 将220V电压转换为5V电压后手机才能充电(提高兼容性);
- 适配器角色
- Source类(被适配者)
- Adapter类(适配器)
- Target类(输出类)
- 三种适配器
- 类适配器
- 将被适配者以类的方式继承到适配器里;
- 对象适配器
- 与类适配器不同的是, 将被适配者以对象的方式聚合到适配器里(合成复用原则);
- 接口适配器/缺省适配器
- 利用抽象类在接口与实现类之间可让实现类按自己需要的方法进行重写, 避免了多余方法的出现;
- 举个例子: 假设接口有100个实现类, 当以后需要为接口再加个新方法时就要操作100个实现类, 有大部分的实现类是不需要这个方法的, 但没办法都要重写新方法, 这个时候缺省适配器可以用上了;
- Java中用到的地方
- SpringMVC框架