话说自从灰太狼抓到羊后,他们一家三口就过着幸福美满的生活。随着时间的流逝,灰太狼渐渐老去并挂掉,临死前他将自己的抓羊秘技传给了已经成年的小灰灰,并留下一件狼皮和一件羊皮。小灰灰也承担起了抓羊的重任。
某一夜,北风呼呼的刮,雪花飘飘洒洒,小灰灰独自一狼上了梁山,混进了羊群。不幸的是,他在抓羊的时候被猎人撞见,只听见一声枪响,小灰灰他受了重伤,但他侥幸逃脱了,救他的是一只羊,从此他们约定三生,互诉着衷肠……(汤潮的歌声在夜空中响起)
小灰灰和羊相爱了,但是在梁山上,狼只能一直披着羊皮生活,但是他还是很开心。直到有一天,小灰灰愁眉苦脸,像是有心事的样子。
羊看见了,于是问小灰灰:“亲爱的,你怎么了?”
小灰灰说:“我想我的妈妈了,自从上次离开家后,我都没有回去看过她。妈妈老了,不知道她现在过得怎么样,我很担心”。
羊说:“亲爱的,别担心,明天我就陪你回去看你妈妈。”
狼说:“可是,那可是狼国啊,对你太危险了。”
羊说:“你爸爸临死前不是给了你一张羊皮和一张狼皮吗,交给我办,你能扮成羊,那我也能扮成狼”。经过一夜,羊改造成了一个新型的法宝——狼羊双向适配器。她把羊皮和狼皮缝在一起,正面羊皮,翻过来后就是狼皮,这样一件衣服,既能扮狼又能扮羊,非常的方便。为了安全起见,狼再次用程序模拟了一遍:
/** * 一个双向适配器。可以把一匹狼适配成一头羊,也可以把一头羊适配成一匹狼。 * @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! |
通过程序测试了这件无敌法宝——狼羊双向适配器很安全后,小灰灰终于答应带着妻子回去看红太狼了。也是因为有了这个双向适配器,他们自由的穿梭在狼的王国和羊的王国,为了河蟹社会贡献自己的一份力量。