java设计模式:适配器模式
2017-10-27 15:53
204 查看
1.适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼容性问题(英国的插座要插入中国的电源,就需要插座转换,转换成适合中国电源模式的插座,这个插座就是适配器).
2.对象适配器:
(1).实例是:用火鸡冒充鸭子(就是把火鸡功能转换成鸭子的功能)
代码:
(2).鸭子接口:
public interface Duck {
}
//实现鸭子的接口
public class GreenHeadDuck implements Duck {
}
//火鸡接口
public interface Turkey {
}
//实现火鸡接口
public class WildTurkey implements Turkey {
}
/**
* 对象适配器
* 目的:火鸡冒充鸭子, 最终需求是鸭子
*/
public class TurkeyAdapter implements Duck {//实现最终目标
}
测试类:
public class MainTest {
public static void main(String[] args) {
输出的结果是如图:
![](https://img-blog.csdn.net/20171027153710571?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvY3dsXzA1MTQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
模拟出来的鸭子实际是火鸡的叫和飞
3.类适配器:
/**
* 类适配器 继承了”火鸡”还是显示”鸭子”
*/
public class TurkeyAdapter2 extends WildTurkey implements Duck {
}
测试类:
public class MainTest {
public static void main(String[] args) {
}
执行出结果同上.
2.对象适配器:
(1).实例是:用火鸡冒充鸭子(就是把火鸡功能转换成鸭子的功能)
代码:
(2).鸭子接口:
public interface Duck {
public void quack(); public void fly();
}
//实现鸭子的接口
public class GreenHeadDuck implements Duck {
@Override public void quack() { System.out.println(" Ga Ga"); } @Override public void fly() { System.out.println("I am flying a long distance"); }
}
//火鸡接口
public interface Turkey {
public void gobble(); public void fly();
}
//实现火鸡接口
public class WildTurkey implements Turkey {
@Override public void gobble() { System.out.println(" Go Go"); } @Override public void fly() { System.out.println("I am flying a short distance"); }
}
/**
* 对象适配器
* 目的:火鸡冒充鸭子, 最终需求是鸭子
*/
public class TurkeyAdapter implements Duck {//实现最终目标
private Turkey turkey;//要实现的 //传入要实现的目标火鸡 public TurkeyAdapter(Turkey turkey) { this.turkey=turkey; } //鸭子的方法 @Override public void quack() { //火鸡的方法 turkey.gobble(); } //同上 @Override public void fly() { for(int i=0;i<6;i++) { turkey.fly(); } }
}
测试类:
public class MainTest {
public static void main(String[] args) {
GreenHeadDuck duck=new GreenHeadDuck(); WildTurkey turkey=new WildTurkey(); TurkeyAdapter turkeyAdapter = new TurkeyAdapter(turkey); turkeyAdapter.fly(); turkeyAdapter.quack();
输出的结果是如图:
模拟出来的鸭子实际是火鸡的叫和飞
3.类适配器:
/**
* 类适配器 继承了”火鸡”还是显示”鸭子”
*/
public class TurkeyAdapter2 extends WildTurkey implements Duck {
@Override public void quack() { super.gobble(); } @Override public void fly() { super.fly(); super.fly(); super.fly(); }
}
测试类:
public class MainTest {
public static void main(String[] args) {
Duck duck2turkeyAdapter=new TurkeyAdapter2(); duck2turkeyAdapter.quack(); duck2turkeyAdapter.fly(); }
}
执行出结果同上.
相关文章推荐
- Java设计模式_(结构型)_适配器模式
- Java设计模式之适配器模式
- Java设计模式之适配器模式(Adapter)
- java中几种设计模式(单例模式,适配器模式,简单工厂模式)
- Java设计模式之《适配器模式》及应用场景
- Java结构型设计模式中的适配器模式与桥接模式解析
- 深入浅出Java设计模式之适配器模式
- Java常用的设计模式:适配器模式
- Java 设计模式_适配器模式
- Java 设计模式 适配器模式
- Java设计模式学习05——适配器模式
- 学习笔记——JAVA设计模式<5>适配器模式
- java设计模式之适配器模式
- JAVA-设计模式之适配器模式
- java设计模式---适配器模式
- Java中的设计模式 - 适配器模式(接口适配器)
- Happy 设计模式之适配器模式(JAVA)
- JAVA设计模式初探之适配器模式
- JAVA设计模式之适配器模式
- Java-设计模式-第二篇-适配器模式