您现在的位置是: 软件 > 开发者网络 > 程序方舟 > Java专栏 > 正文


-明明白白注册表工具
-PHP优化与安全
-Dreamweaver MX 新功能体验
-Visual Basic 图形及图像处理

Java模式开发之责任链模式
2002-04-15· ·阎宏··yesky

上一页  1 2 3 4 5 6 7 8 9  



  问答题答案

  第一题答案、这是一个纯的责任链模式。

  首先,在“猪”牌放出之后,每个人都只能要么躲过“猪”牌,要么吃住“猪”牌。“猪”牌便是责任链模式中的请求,四个人便是四个处理者对象,组成责任链。

  每一个参加者的行为不仅仅取决于他手中的牌,而且取决于他是否想得“猪”牌。一个想收全红的人,可能会权力揽“猪”牌,一个不想收全红的人,一般不想收“猪”牌,除非他想阻止别人收“猪”牌。因为一旦有人收全红,另外三个人就会复出较大的代价,因此阻止别人收全红的动机,会促使一个参与者主动收“猪”牌。有的时候,放出“猪”牌的人也会想要得“猪”牌而得不到,有的时候放出“猪”牌的人想要害人但却害了自己。

  这就是说,到底是四个人中的哪一个人得到“猪”牌是完全动态决定的。

  系统的UML结构图如下:



图18、纸牌游戏“拱猪”的UML类图。

  由于玩牌的时候,可能有四人位置的任意调换,或者有候补者在旁等待,一旦在任的玩家被淘汰,便可上任。这样四个人组成的牌局是动态变化的。同时因为谁会拿到“猪”牌在每一局均会不同,因此谁会放出“猪”牌也是动态的。

  因此,责任链的组成和顺序变不是一成不变的,而是动态的和变化的。

  第二题答案、墨子的守城部队的等级结构可以用下面的对象图表示。



图17、对象图,显示墨子的守城部队。

  显然,这是一个纯的责任链模式。任何提出申请的兵勇便是客户端,伍长、什长、佰长、大帅和大将是责任链的具体处理者对象。一个申请会在链上传播,直到某一级的有合适的权限的军官处理申请为止。每一个申请必会得到处理,批准或驳回。一个被处理过的申请会按照相反的方向传播,直到传回到发出申请的兵勇手中。

  发出申请的士兵在发出申请时根本不知道他的申请会向上传播多少等级。

  第三题答案、这是纯的责任链模式。

  首先,酒便是请求的代表。每一个酒会的参与者都是一个请求的处理者对象,所有的参加者组成责任链。一个酒杯会漂过每一个参加者,代表一个请求经过每一个请求处理者对象。

  每一个酒会的参加者都有可能选择喝掉某一杯酒,或者让酒继续漂向下一个参加者,而且假定所有的酒最后都会被某一个参加者喝掉,因此这是纯的责任链模式。

上一页  1 2 3 4 5 6 7 8 9  

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
 设计模式之State
 设计模式之Facade(外观)
 设计模式之State
 设计模式之Observer
 用Java+MySQL+PHP轻松构建跨平台的搜索引擎
 爪哇语言结构性模式之变压器模式介绍
 爪哇语言抽象工厂创立性模式介绍
 爪哇语言工厂方法创立性模式介绍
 爪哇语言简单工厂创立性模式介绍
 爪哇语言单态创立性模式介绍
 雅加达蚂蚁:新一代Java产品生成器
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!