这里说两种适配器模式
1、类适配模式
在地球时代,所有坐骑都是只能跑,不能飞的,而现在很多坐骑在地球都可以飞了。假设,地球时代的坐骑只能跑,而现在的坐骑不仅能飞还能跑,我们可以用类适配模式来实现,要点是,适配器继承源类,实现目标接口:
- package adapter;
- /**
- * DOC 源
- *
- */
- public class Sources {
- public void run() {
- System.out.println("run");
- }
- }
- package adapter;
- /**
- * DOC 目标接口
- *
- */
- public interface ITarget {
- public void run();
- public void fly();
- }
- package adapter;
- /**
- * DOC 继承源类,实现目标接口,从而实现类到接口的适配
- *
- */
- public class Adapter extends Sources implements ITarget {
- @Override
- public void fly() {
- System.out.println("fly");
- }
- }
2、对象适配模式
假设一个适配器要适配多个对象,可以将这些对象引入到适配器里,然后通过调用这些对象的方法即可:
- package adapter;
- /**
- *
- * DOC 源对象,只有跑的功能
- *
- */
- public class Animal {
- public void run() {
- System.out.println("run");
- }
- }
- package adapter;
- /**
- * DOC 目标接口,既能跑,又能飞
- *
- */
- public interface ITarget {
- public void run();
- public void fly();
- }
- package adapter;
- /**
- * DOC 通过构造函数引入了源对象,并实现了目标的方法
- *
- */
- public class Adapter implements ITarget {
- private Animal animal;
- // private animal animal2....可以适配多个对象
- public Adapter(Animal animal) {
- this.animal = animal;
- }
- /**
- * DOC 拓展接口要求的新方法
- */
- public void fly() {
- System.out.println("fly");
- }
- /**
- * DOC 使用源对象的方法
- */
- public void run() {
- this.animal.run();
- }
- }
原文链接:http://blog.csdn.net/a107494639/article/details/7567678
【编辑推荐】