Java設計模式之:適配器模式
作者:a107494639
在地球時代,所有坐騎都是只能跑,不能飛的,而現(xiàn)在很多坐騎在地球都可以飛了。假設,地球時代的坐騎只能跑,而現(xiàn)在的坐騎不僅能飛還能跑,我們可以用類適配模式來實現(xiàn)。詳細請看下文
這里說兩種適配器模式
1、類適配模式
在地球時代,所有坐騎都是只能跑,不能飛的,而現(xiàn)在很多坐騎在地球都可以飛了。假設,地球時代的坐騎只能跑,而現(xiàn)在的坐騎不僅能飛還能跑,我們可以用類適配模式來實現(xiàn),要點是,適配器繼承源類,實現(xiàn)目標接口:
- 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 繼承源類,實現(xiàn)目標接口,從而實現(xiàn)類到接口的適配
- *
- */
- 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 通過構造函數引入了源對象,并實現(xiàn)了目標的方法
- *
- */
- 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
【編輯推薦】
責任編輯:林師授
來源:
a107494639的博客