当前位置: 技术问答>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
高老庄悟空降八戒
-----------------------------
尽管那时候八戒还不叫八戒,但为了方便这里仍然这样称呼他。
高老庄的故事
------------
却说那春融时节,悟空牵着白马,与唐僧赶路西行。忽一日天色将晚,远远的望见一村人,这就是高老庄,猪八戒的丈人高太公家。为了将高家三小姐解救出八戒的魔掌,悟空决定扮作高小姐,会一会这个妖怪:
“行者却弄神通,摇身一变,变得就如那女子一般,独自个坐在房里等那妖精。不多时,一阵风来,真个是走石飞砂......那阵狂风过处,只见半空里来了一个妖精,果然生得丑陋:黑脸短毛,长喙大耳,穿一领青不青、蓝不蓝的梭布直裰,系一条花布手巾......走进房,一把搂住,就要亲嘴......”
高三小姐的神貌和本人
------------------------
首先,悟空的下手之处是将高三小姐的神貌和她本人分割开来---这和“开-闭”原则有异曲同工之妙。这样一来,“高三小姐本人”也就变成了“高三小姐神貌”的具体实现,而“高三小姐神貌”则变成了抽象角色。请见下图:
(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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。