一、前言
将两个不兼容的类整合在一起使用,属于结构模式,需要有Adaptee和Adapter两个身份。生活中我有许多场景是使用到Adapter模式,例如:苹果充电器,android充电器,现在需要一个可以万能充,下面以这个需求有例子。
二、UML
Adapter说白了,其实是组合和继承的混合使用,其他在我们写的代码中使用过许多次,只是我们没有意识到这其他是一个Adapter,包括我们写的许多springMVC,定义的Service
如图:如果两个类之间像AndroidPower和ApplePower有共性的接口或者方法,我们在类Adapter往往注入接口就可以
如果两个是比较不相关或者方法名也不相同,Adapter往往需要继承一个类然后注入一个类,继承的那个类如SquarePeg作为目标(target),RoundPeg作为被适配者Adaptee
PegAdapter作为适配器(Adaper),最终的目的是使PegAdapter既能打方桩又能打圆桩。
package com.bitch.design.action.adapter;
/**
* Adaptee
* @author chenhaipeng
* &