适配器模式的组成:
1) 目标(Target)角色:定义Client 使用的接口。
2) 被适配(Adaptee)角色:这个角色有一个已存在并使用了的接口,而这个接口是需要我们
适配的。
3) 适配器(Adapter)角色:这个适配器模式的核心。它将被适配角色已有的接口转换为目标
角色希望的接口。
适配器模式和代理模式主要区别在于:代理模式是不改变接口命名的;而适配器模式则强调接口转换。
更深入的讲解请见:http://www.iteye.com/topic/262370
客户端接口:
- public interface Operation{
- public int add(int a,int b);
- public int minus(int a,int b);
- public int multiplied(int a,int b);
- }
被适配角色:
- public class OtherAdd{
- public int otherAdd(int a,int b){
- return a + b;
- }
- }
- public class OtherMinus{
- public int minus(int a,int b){
- return a - b;
- }
- }
- public class OtherMultiplied{
- public int multiplied(int a,int b){
- return a * b;
- }
- }
适配器角色:
- public class AdapterOperation implements Operation{
- private OtherAdd add;
- private OtherMinus minus;
- private OtherMultiplied multiplied;
- public void setAdd(OtherAdd add){
- this.add = add;
- }
- public void setMinus(OtherMinus minus){
- this.minus = minus;
- }
- public void setMultiplied(OtherMultiplied multiplied){
- this.multiplied = multiplied;
- }
- //适配加法运算
- public int add(int a,int b){
- return add.otherAdd(a,b);
- }
- //适配减法运算
- public int minus(int a,int b){
- return minus.minus(a,b);
- }
- //适配乘法运算
- public int multiplied(int a,int b){
- return multiplied.multiplied(a,b);
- }
- }