当前位置:  技术问答>java相关

高老庄悟空降八戒 与设计模式

    来源: 互联网  发布时间:2015-11-16

    本文导语:  下面是《Java与模式》的一个段子,请大家考虑一下里面讲解了什么设计模式 高老庄悟空降八戒 ----------------------------- 尽管那时候八戒还不叫八戒,但为了方便这里仍然这样称呼他。  高老庄的故事 ------------ 却说...

下面是《Java与模式》的一个段子,请大家考虑一下里面讲解了什么设计模式

高老庄悟空降八戒
-----------------------------
尽管那时候八戒还不叫八戒,但为了方便这里仍然这样称呼他。 

高老庄的故事
------------
却说那春融时节,悟空牵着白马,与唐僧赶路西行。忽一日天色将晚,远远的望见一村人,这就是高老庄,猪八戒的丈人高太公家。为了将高家三小姐解救出八戒的魔掌,悟空决定扮作高小姐,会一会这个妖怪:

“行者却弄神通,摇身一变,变得就如那女子一般,独自个坐在房里等那妖精。不多时,一阵风来,真个是走石飞砂......那阵狂风过处,只见半空里来了一个妖精,果然生得丑陋:黑脸短毛,长喙大耳,穿一领青不青、蓝不蓝的梭布直裰,系一条花布手巾......走进房,一把搂住,就要亲嘴......”

高三小姐的神貌和本人
------------------------
首先,悟空的下手之处是将高三小姐的神貌和她本人分割开来---这和“开-闭”原则有异曲同工之妙。这样一来,“高三小姐本人”也就变成了“高三小姐神貌”的具体实现,而“高三小姐神貌”则变成了抽象角色。请见下图:

(UML图,无法上载,此略)

图26、高三小姐的神貌和她本人是可以分离的。 

悟空扮演并代替高三小姐
第二步,悟空巧妙地实现了“高三小姐神貌”,也就是说同样变成了“高三小姐神貌”的子类。请见下图:


(UML图,无法上载,此略)

图27、悟空可以扮演高三小姐,并代替高三小姐会见八戒的静态结构图。 

第三步,悟空代替“高三小姐本人”去会见猪八戒。

显然这就是代理模式的应用。具体地讲,这是保护代理模式的应用。只有代理对象认为合适时,才会将客户端的请求传递给真实主题对象。

八戒分辨不出真假老婆
------------------------
从《西游记》的描述可以看出,猪八戒根本分辨不出悟空扮演的“高三小姐替身”和“高三小姐本人”。客户端分辨不出代理主题对象与真实主题对象,这是代理模式的一个重要用意。


(UML图,无法上载,此略)

图28、悟空可以扮演高三小姐,并代替高三小姐会见八戒的对象图。 

阎宏博士,写于纽约
《Java与模式》作者
javapatterns@yahoo.com
http://www.WebEndsHere.com 
http://www.yesky.com/20011108/203866.shtml

买书请到:
http://www.china-pub.com/computers/common/info.asp?id=8182
http://www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=BB07630282

|
呵呵,这样讲设计模式也算有创意

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3