background image

        代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象
的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客
户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作
用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对
象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理
对象必须有系统的其他角色代为创建并传入。
行为模式
        13、CHAIN OF RESPONSIBLEITY—晚上去上英语课,为了好开溜坐到了最后一排,
哇,前面坐了好几个漂亮的 MM

哎,找张纸条,写上 Hi,可以做我的女朋友吗?如果不愿

意请向前传 ,纸条就一个接一个的传上去了,糟糕,传到第一排的 MM 把纸条传给老师
了,听说是个老处女呀,快跑!
        责任链模式:在责任链模式中,很多对象由每一个对象对其下家的引用而接
        起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。客
户并不知道链上的哪一个对象最终处理这个请求,系统可以在不影响客户端的情况下动态
的重新组织链和分配责任。处理者有两个选择:承担责任或者把责任推给下家。一个请求可
以最终不被任何接收端对象所接受。
        14、COMMAND—俺有一个 MM 家里管得特别严,没法见面,只好借助于她弟弟在
我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟
又传送过来一个 COMMAND

,为了感谢他,我请他吃了碗杂酱面,哪知道他说: 我同时

给我姐姐三个男朋友送 COMMAND

,就数你最小气,才请我吃面。 ,:-(

        命令模式:命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的
责任和执行命令的责任分割开,委派给不同的对象。命令模式允许请求的一方和发送的一
方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被
接收,以及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消。
        15、INTERPRETER—俺有一个《泡 MM 真经》,上面有各种泡 MM 的攻略,比如说去
吃西餐的步骤、去看电影的方法等等,跟 MM 约会时,只要做一个 Interpreter,照着上面
的脚本执行就可以了。
        解释器模式:给定一个语言后,解释器模式可以定义出其文法的一种表示,并同时
提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式将描述
怎样在有了一个简单的文法后,使用模式设计解释这些语句。在解释器模式里面提到的语
言是指任何解释器对象能够解释的任何组合。在解释器模式中需要定义一个代表文法的命
令类的等级结构,也就是一系列的组合规则。每一个命令对象都有一个解释方法,代表对
命令对象的解释。命令对象的等级结构中的对象的任何排列组合都是一个语言。
        16、ITERATOR—我爱上了 Mary,不顾一切的向她求婚。
        Mary “

: 想要我跟你结婚,得答应我的条件

        

我: 什么条件我都答应,你说吧

        Mary “

: 我看上了那个一克拉的钻石

        

我: 我买,我买,还有吗?

        Mary “

: 我看上了湖边的那栋别墅

        

我: 我买,我买,还有吗?

        Mary “

: 你的小弟弟必须要有 50cm

        

我脑袋嗡的一声,坐在椅子上,一咬牙: 我剪,我剪,还有吗?

       16 迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部
表象。多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对