适配器模式

模式定义

适配器模式:将一个借口转化成客户希望的另一个接口,适配器模式使接口不兼容的类可以一起工作。

模式结构图

 模式分析

适配器有如下几个角色

1.Target(目标抽象类)

定义客户要用的特定领域的接口,可以是个抽象类或借口,也可以是具体类。

2.Adapter(适配器类)

适配器类可以调用另一个接口,作为一个转化器,对Adaptee和Target进行适配,适配器Adapter是适配器模式的核心,在类适配器中,他通过实现Target接口并继承类来使两者修昂胡联系。

3.Adaptee(适配者类)

适配者即被适配的角色,它定义了一个已经存在的接口。这个接口需要适配,适配类一般是一个实体类,它包含了客户希望使用的业务方法。

4.Clientlei(客户类)

针对目标抽象类进行编程。

优点:

(1)将目标类和适配类解耦

(2)增加了类的透明性和复用性

(3)灵活性和扩展性很好

缺点:

(1)java,C#不支持类的多重继承。

机器人模仿狗案例

机器人接口类

package com.zck.adapter;

//仿生机器人接口
public interface Robot {
	public void cry();
	public void move();
}

  

狗实体类

package com.zck.adapter;

public class Dog {
	public void wang(){
		System.out.println("狗汪汪叫");
	}
	public void run(){
		System.out.println("狗快快跑");
	}
}

  

狗适配器类

package com.zck.adapter;

public class DogAdapter extends Dog implements Robot {

	public void cry() {
		System.out.println("机器人模仿");
		super.wang();
	}

	public void move() {
		System.out.println("机器人模仿");
		super.run();

	}

}

  

客户端类

package com.zck.adapter;

public class Client {
	public static void main(String[] args) {
		DogAdapter dogAdapter = new DogAdapter();
		Robot robot = dogAdapter;
		robot.cry();
		robot.move();
	}

}

  

测试结果

 

posted @ 2020-11-04 15:44  一笑任逍遥  阅读(81)  评论(0编辑  收藏  举报