java设计模式之适配器模式
来源:互联网 发布:noppoo choc mac 编辑:程序博客网 时间:2024/06/11 12:10
一、什么是适配器模式
将一个类的接口,转换成期望的另外一个接口,使得由于接口不兼容而不能一起工作的那些类可以一起工作。用通俗的话讲:
*适配器模式中有4个角色:客户端、目标接口、适配器、被适配类。客户端想要的接口是目标接口的样子;被适配器类提供的是接口的另一种样子;适配器在中间起到一个连接两者的作用,把被适配器类改造为目标接口的样子。*
二、下面来看一个实际的例子
鸭子接口
//鸭子有两种简单的行为,呱呱叫和飞public interface Duck{public void quack();public void fly();}
鸭子的实现类
public class MallardDuck implements DuckP{public void quack(){System.out.println("嘎嘎。。。。。。");}public void fly(){System.out.println("我是鸭子我在飞。。。。。。");}}
火鸡的接口
public interface Turkey{public void gobble();//火鸡是咕咕叫的public void fly();}
火鸡的实现类
public void WildTurkey implements Turkey{public void gobble(){System.out.println("咕咕咕。。。。");}public void fly(){System.out.println("我在飞但是飞不远。。。。。。");}}
火鸡适配器(把火鸡转变成了鸭子,这样就可以像使用鸭子一样使用火鸡了)
public void TurkeyAdapter implements Duck{Turkey turkey;传入一只火鸡,待会儿要调用它的叫声public TurkeyAdapter(Turkey turkey){this.turkey=turkey;}//看上去是鸭子叫,实际上发出来的是火鸡的声音public void quack(){turkey.gobble();}//看上去是鸭子飞,实际上是火鸡飞的public void fly(){turkey.fly();}}
main方法用来测试
public class DuckTestDrive{public static void main(String[] args){MallardDuck duck=new MallardDuck();WildTurkey turkey=new WildTurkey();Duck turkeyAdapter=new TurkeyAdapter(turkey);System.out.println("火鸡说。。。");turkey.gobble9);tukey.fly();System.out.println("鸭子说。。。");testDuck(duck);System.out.println("火鸡适配器说。。。。。");testDuck(turkeyAdapter);}**//这就是那个要用鸭子的方法**static void testDuck(){duck.quack();duck.fly();}}
0 0
- java设计模式之适配器设计模式
- java设计模式之适配器设计模式
- JAVA设计模式之适配器
- 深入浅出Java设计模式之适配器模式
- 深入浅出Java设计模式之适配器模式
- Java设计模式之适配器模式
- 深入浅出Java设计模式之适配器模式
- Java设计模式之适配器模式
- java 设计模式之七-适配器模式
- java设计模式之适配器模式
- Java设计模式之适配器模式
- java设计模式之适配器模式
- Java:设计模式之适配器模式Adapter
- java设计模式之适配器模式
- java设计模式之适配器模式
- Java设计模式之适配器模式
- Java设计模式之适配器模式
- java与设计模式之适配器模式
- B. Chris and Magic Square
- Tensorflow #2 深度学习-RNN LSTM版 MNIST手写识别Demo
- webview 加载h5页面,播放视频+全屏,实现简单封装
- ACdream1427-Nice Sequence
- velocity之使用函数对web-inf文件夹下模板进行解析加载
- java设计模式之适配器模式
- 优质Swift学习视频地址
- 在Linux里设置环境变量的方法(export PATH)
- Json解析和可扩展的ListView
- 第九章:Gaussian Mixture and EM exercise 1-14
- 嵌入式系统概述
- DLL注入之WindowsHooks
- 管程
- java图片和数组相互转换