学习设计模式之适配器模式

[*]首先声明一个鸟类的接口,鸟会飞,还会唱歌

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 little
I can quack


[b]总结:[/b]适配器模式的用处在于装,将类从一个接口,转换到另外一个接口,使原来不一样的类,至少可以看起来是一样的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值