【设计模式】【狼和羊的爱情故事——双向适配器】
来源:互联网 发布:科讯cms漏洞 编辑:程序博客网 时间:2024/04/30 11:30
话说自从灰太狼抓到羊后,他们一家三口就过着幸福美满的生活。随着时间的流逝,灰太狼渐渐老去并挂掉,临死前他将自己的抓羊秘技传给了已经成年的小灰灰,并留下一件狼皮和一件羊皮。小灰灰也承担起了抓羊的重任。
某一夜,北风呼呼的刮,雪花飘飘洒洒,小灰灰独自一狼上了梁山,混进了羊群。不幸的是,他在抓羊的时候被猎人撞见,只听见一声枪响,小灰灰他受了重伤,但他侥幸逃脱了,救他的是一只羊,从此他们约定三生,互诉着衷肠……(汤潮的歌声在夜空中响起)
小灰灰和羊相爱了,但是在梁山上,狼只能一直披着羊皮生活,但是他还是很开心。直到有一天,小灰灰愁眉苦脸,像是有心事的样子。
羊看见了,于是问小灰灰:“亲爱的,你怎么了?”
小灰灰说:“我想我的妈妈了,自从上次离开家后,我都没有回去看过她。妈妈老了,不知道她现在过得怎么样,我很担心”。
羊说:“亲爱的,别担心,明天我就陪你回去看你妈妈。”
狼说:“可是,那可是狼国啊,对你太危险了。”
羊说:“你爸爸临死前不是给了你一张羊皮和一张狼皮吗,交给我办,你能扮成羊,那我也能扮成狼”。经过一夜,羊改造成了一个新型的法宝——狼羊双向适配器。她把羊皮和狼皮缝在一起,正面羊皮,翻过来后就是狼皮,这样一件衣服,既能扮狼又能扮羊,非常的方便。为了安全起见,狼再次用程序模拟了一遍:
/**
* 一个双向适配器。可以把一匹狼适配成一头羊,也可以把一头羊适配成一匹狼。
* @author jingping.yi
*
*/
public class ATwoFaceAdapter implements ISheep, IWolf {
ISheep sheep = null;
public ATwoFaceAdapter(ISheep sheep){
this.sheep = sheep;
}
@Override
public void wolfLooks() {
// 假装自己是一匹狼
System.out.println("I am a wolf,too!");
// 隐藏自己的外貌
// sheep.sheepLooks();
}
@Override
public void eatMeat() {
// 本质是吃草
sheep.eatGrass();
}
IWolf wolf = null;
public ATwoFaceAdapter(IWolf wolf){
this.wolf = wolf;
}
@Override
public void sheepLooks() {
// 假装自己是一头羊
System.out.println("I am a sheep,too.");
// 隐藏自己的外貌
// wolf.wolfLooks();
}
@Override
public void eatGrass() {
// 本质是吃肉
wolf.eatMeat();
}
}
package com.crayon.adapter.wolfandsheep2face;
/**
* 双向适配器——可以有披着羊皮的狼,也可以有披着狼皮的羊。
* @author jingping.yi
*
*/
public class Main {
public static void main(String[] args) {
// 把一匹狼适配成一头羊
ISheep AFakeSheep = new ATwoFaceAdapter(new ARealWolf());
AFakeSheep.sheepLooks();
// AFakeSheep.eatGrass();
// 把一头羊适配成一匹狼
IWolf AFakeWolf = new ATwoFaceAdapter(new ARealSheep());
AFakeWolf.wolfLooks();
// AFakeWolf.eatMeat();
}
}
// 输出
I am a sheep,too.
I am a wolf,too!
通过程序测试了这件无敌法宝——狼羊双向适配器很安全后,小灰灰终于答应带着妻子回去看红太狼了。也是因为有了这个双向适配器,他们自由的穿梭在狼的王国和羊的王国,为了河蟹社会贡献自己的一份力量。
- 【设计模式】【狼和羊的爱情故事——双向适配器】
- 不兼容结构的协调——适配器模式(三):类适配器,双向适配器
- 适配器模式-Adapter Pattern 不兼容结构的协调——适配器模式(三):类适配器,双向适配器
- 设计模式之双向适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式—适配器模式
- 设计模式——适配器模式和外观模式
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:使用双向适配器提供透明操作
- 《GOF设计模式》—适配器(ADAPTER)—Delphi源码示例:使用双向适配器提供透明操作
- 设计模式——适配器
- 设计模式的学习(2)——适配器模式
- Python 的结构型设计模式——适配器模式
- 第14章 错误处理与调试 (三)
- ==把VIM打造成开发C的IDE==
- ie6下height高度问题
- Android应用程序签名详解
- 计算机期刊杂志投稿指南
- 【设计模式】【狼和羊的爱情故事——双向适配器】
- DataGridView中按单元格填充内容,字体颜色,背景色
- Java keytool工具的作用及使用方法
- 深刻理解hasLayout属性
- iis 7 mvc3 cshtml 总是报403 错误
- [C] C程序100例_008
- c++读文件时候get和getline区别--[转载]
- 变量转换(不使用中间变量)
- 万年历