第24章 公司层级结构:访问者模式.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第24章 公司层级结构:访问者模式 24.1 公司层级结构 24.2 模式定义 24.3 模式分析 24.4 模式实现 24.5 设计原则 24.6 使用场合 24.7 本章要点 24.1 公司层级结构 公司层级结构如图24-1所示。 24.2 模式定义 访问者模式(Visitor Pattern),是表示一个作用于某对象结构中的各元素的操作,它使用户可以在不改变各元素类的前提下定义作用于这些元素的新操作。 24.3 模式分析 24.3.1 组合模式回顾 在做分析之前,我们先来回顾一下组合模式中的关系结构图,如图24-2所示。 24.3.2 访问者模式分析 应用访问者模式解决实际问题的时候,需要考虑以下几点内容: (1)一个结构对象内容(相当于一个各种对象的集合); (2)必须存在遍历自身各个对象的方法; (3)结构对象的内部结构不经常变化,比较稳定; (4)作用于结构上的操作,即访问者角色是可以变化的。 看看公司层级结构中是如何应用访问者模式的。 (1)对象需要能够接受访问者的访问(旅游景点得对外开放才能有人来啊)。 (2)访问者角色还要遍历不同的对象,执行不同的操作。 24.3.2 访问者模式分析 根据以上两点内容,设计公司层级结构图如图24-3所示。 24.3.3 访问者模式静态建模 创建一个具体的打印员工信息的访问者对象,即将打印的处理行为搬移到访问者角色中进行处理,静态类图如图24-4所示。 24.4 模式实现 24.4.1 员工实现 1.抽象员工——Staff 2.管理者——Manager 3.普通员工——Employees 24.4.2 访问者实现 1.访问者接口——IVisitor 2.员工基本信息访问者——PrintBaseInfoVisitor 24.4.3 让员工接收访问者 1.抽象员工类Staff中增加accept方法 2.普通员工Employees中accept方法具体实现 3.管理者Manager中accept方法具体实现 24.4.4 客户端测试 24.4.5 扩展的思考 1.创建统计员工薪资的访问者接口——ISalaryVisitor 2.统计员工薪资访问者实现——SalaryVisitor 3.如何使用新的访问者 24.5 设计原则 1.“开-闭”原则 2.单一职责原则 24.6 使用场合 (1)如果在一个对象结构中包含很多不同类型对象,它们有不同的接口,而想对这些不同对象实施一些依赖于其具体类的操作。 (2)需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而想避免让这些操作与这些对象的类关联起来。访问者模式使得可以将相关的操作集中起来,单独定义在一个类中。 (3)当该对象结构被很多应用共享时,用访问者模式让每个应用仅包含需要用到的操作。 (4)定义对象结构的类很少改变,但经常需要在此结构上定义新的操作。 24.6 使用场合 访问者模式通用静态类图如图24-8所示。 24.6 使用场合 1.访问者模式中的角色 2.扩展1:Java SDK中的访问者模式 3.扩展2:相关的设计模式 24.7 本章要点 1.访问者模式 2.设计原则 3.模式中的角色 4.相关的设计模式 5.使用场合

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档