学习设计模式之适配器模式
首先声明一个鸟类的接口,鸟会飞,还会唱歌package com.adapter;public interface Bird {public void sing();public void fly();}
创建老鹰类,实现鸟类接口
package com.adapter;public class Eagle implements Bird {public void fly() {System.out.println("I am an eagle, I can fly high");}public void sing() {System.out.println("I can sing loud");}}
创建家禽接口,家禽也能飞,叫
package com.adapter;public interface JiaQin {public void fly();public void jiao();}
创建家禽实现类鸭子,鸭子飞得不高,只会嘎嘎叫
package com.adapter;public class Duck implements JiaQin {public void fly() {System.out.println("I can fly a little");}public void jiao() {System.out.println("I can quack");}}
现在领导要来观察老鹰,但是现在没有老鹰,好吧,那就抓一只鸭子来冒充吧,披上老鹰皮的鸭子
package com.adapter;public class BirdTest {public static void main(String[] args){JiaQin duck = new Duck(); //假的老鹰,去冒充鸟类,使之也可以被观察Adapter phonyEagle = new Adapter(duck);observerTheBird(phonyEagle);}//观察鸟类方法public static void observerTheBird(Bird b){b.fly();b.sing();}}
让鸭子能披上老鹰皮的,就是那个适配器Adapter,里面真的包了一只鸭子,会装的鸭子
package com.adapter;public class Adapter implements Bird {private JiaQin duck;Adapter(JiaQin duck){this.duck = duck;}public void fly() {duck.fly();}public void sing() {duck.jiao();}}
运行结果如下:
I can fly a littleI can quack
总结:适配器模式的用处在于装,将类从一个接口,转换到另外一个接口,使原来不一样的类,至少可以看起来是一样的
页:
[1]