【设计模式】【狼和羊的爱情故事——双向适配器】

原创 2012年03月16日 22:00:06

        话说自从灰太狼抓到羊后,他们一家三口就过着幸福美满的生活。随着时间的流逝,灰太狼渐渐老去并挂掉,临死前他将自己的抓羊秘技传给了已经成年的小灰灰,并留下一件狼皮和一件羊皮。小灰灰也承担起了抓羊的重任。

        某一夜,北风呼呼的刮,雪花飘飘洒洒,小灰灰独自一狼上了梁山,混进了羊群。不幸的是,他在抓羊的时候被猎人撞见,只听见一声枪响,小灰灰他受了重伤,但他侥幸逃脱了,救他的是一只羊,从此他们约定三生,互诉着衷肠……(汤潮的歌声在夜空中响起)

        小灰灰和羊相爱了,但是在梁山上,狼只能一直披着羊皮生活,但是他还是很开心。直到有一天,小灰灰愁眉苦脸,像是有心事的样子。

        羊看见了,于是问小灰灰:“亲爱的,你怎么了?”

        小灰灰说:“我想我的妈妈了,自从上次离开家后,我都没有回去看过她。妈妈老了,不知道她现在过得怎么样,我很担心”。

        羊说:“亲爱的,别担心,明天我就陪你回去看你妈妈。”

        狼说:“可是,那可是狼国啊,对你太危险了。”

        羊说:“你爸爸临死前不是给了你一张羊皮和一张狼皮吗,交给我办,你能扮成羊,那我也能扮成狼”。经过一夜,羊改造成了一个新型的法宝——狼羊双向适配器。她把羊皮和狼皮缝在一起,正面羊皮,翻过来后就是狼皮,这样一件衣服,既能扮狼又能扮羊,非常的方便。为了安全起见,狼再次用程序模拟了一遍:

/**

 * 一个双向适配器。可以把一匹狼适配成一头羊,也可以把一头羊适配成一匹狼。

 * @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!

        通过程序测试了这件无敌法宝——狼羊双向适配器很安全后,小灰灰终于答应带着妻子回去看红太狼了。也是因为有了这个双向适配器,他们自由的穿梭在狼的王国和羊的王国,为了河蟹社会贡献自己的一份力量。

相关文章推荐

不兼容结构的协调——适配器模式(三):类适配器,双向适配器

9.4 类适配器除了对象适配器模式之外,适配器模式还有一种形式,那就是类适配器模式,类适配器模式和对象适配器模式最大的区别在于适配器和适配者之间的关系不同,对象适配器模式中适配器和适配者之间是关联关系...
  • will130
  • will130
  • 2016年01月15日 10:16
  • 753

适配器模式(Adapter Pattern)(一):适配器模式介绍

一、意图 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 二、适用性 对象需...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

设计模式(五)适配器模式Adapter(结构型)

设计模式(五)适配器模式Adapter(结构型) 1. 概述:          接口的改变,是一个需要程序员们必须(虽然很不情愿)接受和处理的普遍问题。程序提供者们修改他们的代码;系统库...
  • hguisu
  • hguisu
  • 2012年05月02日 16:02
  • 52605

不能相见的爱人——丘比特的爱情故事

从前有个国王,他有三个女儿。普赛克是最小的也是最漂亮的一个。她实在太漂亮了,以致她那个国家的人都忽视了爱与美的女神维纳斯,转而崇拜普赛克。维纳斯开始的时候是嫉妒,后来就试图寻找报复的办法。她向自己的儿...

flash简单的爱情故事

  • 2010年11月22日 20:35
  • 9.6MB
  • 下载

网易视频云:用代码讲一个程序猿的爱情故事

网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PaaS服务。在线教育、远程医疗、娱乐秀场...

程序员杂记:我们的爱情故事

我承认,我早恋过。初三的时候第一次对一个女孩子心动,并追求到手,其实是花了很多心思的。初恋给人的感觉是酸涩的,刚刚确定关系没有多长时间,女孩就去了太原上党校,而我还在县城里上着初三。后来我初中毕业后去...
  • xy8cn
  • xy8cn
  • 2011年11月28日 20:06
  • 9042

.一个悲催的程序员的悲催的爱情故事

前序 时间要从中国奥运年开始。当时L在Y市读书,由于闲暇的时间比较多,基本每天都是泡网吧(没电脑,上课时间除外),国庆前某一个无聊的下午,上完网后,以尝试的心态给同学Y一样去找兼职。他俩沿着宿舍一直...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【设计模式】【狼和羊的爱情故事——双向适配器】
举报原因:
原因补充:

(最多只允许输入30个字)