Java设计模式_结构型_适配器模式_丑小鸭与白天鹅
2016-01-04 15:04
627 查看
转载请注明出处:/article/11557499.html
本文出自:【梁敬明的博客】
本文出自:【梁敬明的博客】
1.丑小鸭是什么样的?
鸭子会飞也会叫,丑小鸭也是鸭子的一种,会嘎嘎的叫,可以飞行一百米远。//鸭子 public interface Duck { void quack(); void fly(); } //丑小鸭 public class UglyDuck implements Duck { @Override public void fly() { System.out.println("飞行一百米"); } @Override public void quack() { System.out.println("嘎嘎的叫"); } }
2.白天鹅是什么样的?
天鹅会飞也会叫,当然白天鹅会嘎嘎的叫,天鹅飞的的距离可以达到一千米。//天鹅 public interface Swan { void gaggle(); void fly(); } //白天鹅 public class WhiteSwan implements Swan { @Override public void fly() { System.out.println("飞行一千米"); } @Override public void gaggle() { System.out.println("嘎嘎的叫"); } }
3.鸭子与天鹅的区别
现在需要一只天鹅去给观众进行表演,不过现在没有天鹅,只有一只鸭子,我们需要将天鹅包装成鸭子,只要实现了天鹅的功能,我们就可以把它当做天鹅来看待。首先天鹅和鸭子都会嘎嘎的叫,鸭子依次可以飞行一百米远,天鹅依次可以飞行一千米远,不过勤能补拙,鸭子努力点飞行十次也能达到一千米,天鹅的功能鸭子都实现了,此时我们就说将鸭子适配成了天鹅。public class SwanAdapter implements Swan { private Duck duck; public SwanAdapter(Duck duck){ this.duck = duck; } @Override public void fly() { for (int i = 0; i < 10; i++) { duck.fly(); } } @Override public void gaggle() { duck.quack(); } }
4.丑小鸭变白天鹅
现在创建一只天鹅,然后再创建一只适成天鹅的鸭子,看看它们之间是否能达到相同的表演效果。public class Client { public static void main(String[] args) { Swan whiteSwan = new WhiteSwan(); whiteSwan.gaggle(); whiteSwan.fly(); Swan swan = new SwanAdapter(new UglyDuck()); swan.gaggle(); swan.fly(); } }
相关文章推荐
- 重新下载jdk,虽已更改环境配置,但运行仍为原来的jdk?
- (转)Java中swap()方法的实现
- Shiro web 和spring
- JAVA虚拟机之六:虚拟机性能监控和故障处理工具
- 正则表达式--常用用法及lookahead、lookbehind
- ubuntu安装JDK
- Java中的数字处理
- jdk下载
- java -异常
- Java 使用 SlfLog4J 写日志
- java 接口
- Struts2自定义登录验证拦截器
- spring mvc ModelAndView向前台传值
- eclipse导入myeclipse的web项目
- JAVA学习12_Java中的注解是如何工作的?
- 在struts中犯的错误
- BASIC-12 十六进制转八进制 (用java超时的原因)
- java 继承、抽象、private、static、final关键字在类中的使用
- myeclipse 在线生成注册码
- Struts到spring mvc的体会