七、适配器模式
来源:互联网 发布:淘宝同城鲜花速递 编辑:程序博客网 时间:2024/06/05 02:09
适配器模式
定义:将一个类的接口,转化成客户期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。
我们周围的适配器
最常见的例子是三孔插座和两孔插座,如果墙上有一个三孔插座,但是我们的充电器又只能使用两孔的插座,那么我们通常是接一条带有两孔和三孔的插座其插头是三个的,以适应不同的需求。
面向对象适配器
假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商的接口不同于旧厂商的接口,不改变现有代码,如何解决这个问题?写一个类,将新厂商接口转接成你所期望的接口。
这个适配器实现了你的类所期望的接口,而且也能和厂商的接口沟通。
火鸡适配器
现在假设你缺鸭子对象,想用一些火鸡对象冒充。这两个对象接口不同,不能直接用,所以来写个适配器吧。
先看鸭子接口
public interface Duck{
public void quack();
public void fly();
//鸭子接口具备呱呱叫和飞行的能力
}
绿头鸭是鸭子的子类
public class MallardDuck implements Duck{
public void quack()
{
System.out.println(“Quack”);
}
public void fly()
{
System.out.println(“I’mflying”);
}
火鸡接口
public interface Turkey{
public void gobble();//火鸡不会呱呱叫,只会咯咯叫
public void fly();//火鸡会飞,虽然飞不远
}
火鸡的具体实现类
public class WildTurkey implements Turkey{
public void gobble()
{
System.out.println(“gobblegobble”);
}
public void fly()
{
System.out.println(“I’mflying a short distance”);
}
火鸡适配器
//首先,要实现想转换成的类型接口,也就是你的客户所期望看到的接口
public class TurkeyAdapter implements Duck{
Turkey turkey;
//接着,要取得适配的对象的引用
public TurkeyAdapter(Turkeyturkey){
this.turkey = turkey;
}
//实现接口中所有的方法
public void quack(){
turkey.gobble();
}
//火鸡的飞行距离很短,不像鸭子可以长途飞行,
//要让鸭子和火鸡的飞行对应,必须连续五次调用火鸡的fly来完成
public void fly(){
for(inti=0;i<5;i++){
turkey.fly();
}
}
}
测试适配器
public class DuckTestDrive{
public static voidmain(String[] args){
//创建一只鸭子
MallardDuck duck = new MallardDuck();
//创建一只火鸡
WildTurkey turkey = new WildTurkey();
//将火鸡包装进火鸡适配器中,使它像一只鸭子
DuckturkeyAdapter = new TurkeyAdapter(turkey);
//测试这只火鸡,让它咯咯叫,让它飞行
System.out.println("the Turkey says ...");
turkey.gobble();
turkey.fly();
//调用testDuck方法来测试鸭子
System.out.println("\nthe duck says...");
testDuck(duck);
//传入一只假装是鸭子的火鸡
System.out.println("\n the turkeyAdapter says ...");
testDuck(turkeyAdapter);
}
public static voidtestDuck(Duck duck){
duck.quack();
duck.fly();
}
}
- 七、适配器模式
- 七,适配器模式
- 七、适配器模式
- 设计模式(七) 适配器模式
- 设计模式之(七)适配器模式Adapter
- java 设计模式之七-适配器模式
- 设计模式(七)---适配器模式
- 七、结构模式之-适配器(Adapter)模式
- 设计模式之七适配器模式
- 设计模式(七)适配器模式
- 设计模式系列之七适配器模式
- Java设计模式:七、适配器模式
- java 开发模式之七 : 适配器模式
- 设计模式之七 ------Adapter(适配器)
- 设计模式(七)之 Adapter(适配器)
- 设计模式学习笔记七(Adapter适配器模式)
- 设计模式学习笔记(七)之适配器模式(Adapter)
- 设计模式学习(七)——适配器模式
- 《Artech的WCF剖析系列》系列技术文章整理收藏
- Catch That Cow--poj3278
- 深入分析Java Web技术内幕_第一章 学习笔记
- Java编程思想_笔记(二)
- mongo与Java之aggregate
- 七、适配器模式
- LTE中的HARQ学习(1)——基本概念
- (八) Python函数
- ls命令的简要实现
- PB技巧:DataWindw中批量删除行或恢复行
- Machine Learning 笔记
- IE浏览器兼容问题
- Google Protocol Buffers浅析(四)
- C#.NET里面抽象类和接口有什么区别?