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

却说那春融时节,悟空牵着白马。。。

    来源: 互联网  发布时间:2017-04-17

    本文导语:  我下面给出《Java与模式》的一段,希望大家喜欢: 高老庄的故事 ------------ 却说那春融时节,悟空牵着白马,与唐僧赶路西行。忽一日天色将晚,远远的望见一村人,这就是高老庄,猪八戒的丈人高太公家。为了将...

我下面给出《Java与模式》的一段,希望大家喜欢:


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

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

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

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

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

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


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

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

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

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

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


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

图28、悟空可以扮演高三小姐,并代替高三小姐会见八戒的对象图。 
----------------------------------------------
阎宏博士,写于纽约
《Java与模式》作者
javapatterns@yahoo.com
http://www.WebEndsHere.com 
http://www.china-pub.com/computers/common/info.asp?id=8182
http://www.huachu.com.cn/itbook/itbookinfo.asp?lbbh=BB07630282
http://www.yesky.com/20011108/203866.shtml  

|
好像十本好书

|
我挺喜欢你的书,但我觉得你是不是有点王婆了?另外你的书中说静态方法不能被子类继承,为什么?

    
 
 

您可能感兴趣的文章:

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












  • 相关文章推荐
  • 我装了一个cygwin,却说找不到cybiconv-2.dll这个文件。请问这个文件在哪?
  • 我成功编译了一个C程序,可是我执行的时候它却说找不到....
  • 用记事本编写了一个Servlet,但在命令行中编绎时却说找不到包:
  • 为什么 a.out明明存在 ,而我在shell中输入a.out却说bash: a.out : command not found?
  • 奇怪的问题,我的jdk1.2.2,用javac命令可以编译成class文件,但使用java运行时却说找不到类文件


  • 站内导航:


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

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

    浙ICP备11055608号-3