第10讲:软件设计模式.pptVIP

  1. 1、本文档共228页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

迭代子模式的由来将对象职责分离,最大限度减少彼此之间的耦合程度,从而建立一个松散耦合的对象网络集合对象拥有两个职责:一是存储内部数据;二是遍历内部数据。从依赖性看,前者为对象的根本属性,而后者既是可变化的,又是可分离的。可将遍历行为分离出来,抽象为一个迭代器,专门提供遍历集合内部数据对象行为。这是迭代子模式的本质迭代子模式的意图和适用性意图迭代子模式的目的是设计一个迭代器,提供一种可顺序访问聚合对象中各个元素的方法,但不暴露该对象内部表示适用场合访问一个聚合对象的内容而无需暴露其内部表示支持对聚合对象的多种遍历为遍历不同的聚合结构提供一个统一接口(支持多态迭代)迭代子模式的结构迭代子模式的参与者Iterator定义访问和遍历元素的接口ConcreteIterator实现迭代器接口Aggregate定义创建迭代器对象的接口ConcreteAggregate实现创建迭代器的接口,返回具体迭代器的一个实例迭代子模式的效果分析简化了聚集的行为,迭代子具备遍历接口,聚集不必具备遍历接口每一个聚集对象都可以有一个或者更多的迭代子对象,每一个迭代子的迭代状态可以彼此独立遍历算法被封装到迭代子对象中,迭代算法可以独立于聚集对象变化。客户端不必知道聚集对象的类型,通过迭代子就可以读取和遍历聚集对象。聚集内部数据发生变化不影响客户端程序迭代子模式的应用代理(Proxy)模式的应用示例一个简单的数学计算程序,程序只负责简单的加减乘除运算代理(Proxy)模式的效果分析RemoteProxy为一个位于不同地址空间的对象提供一个局域代表对象将网络细节隐藏,客户端不必考虑网络的存在代理对象承担了大部份的网络通讯工作VirtualProxy创建一个资源消耗较大的对象,需要时才被真正创建代理对象可以在必要的时候才加载被代理对象代理可以对加载的过程加以优化代理(Proxy)模式的效果分析ProtectProxy控制对象的访问,可给不同用户提供不同级别的使用权限可以在运行时对用户权限进行检查CacheProxy为目标操作提供临时存储空间,以便多客户端共享FirewallProxy保护目标,防止恶意用户接近SynchronizationProxy使多用户能同时使用一个对象而没有冲突组合(Composite)模式的由来表达部分与整体的树形结构机箱计算机显示器键盘鼠标主板CPU硬盘电源显卡网卡组合(Composite)模式的由来抽象单一对象(Leaf):键盘、鼠标、显示器、硬盘、电源、CPU、显卡、网卡组合对象(Composite):计算机、机箱、主板部件(Component):单一对象与组合对象的统称组合对象既可以包括单一对象,也可以包括组合对象组合(Composite)模式的意图和适用性意图:将对象组合成树形结构,表示“部分/整体”层次结构使用户对单一对象和组合对象使用一致性接口适用性表示对象的部分-整体层次结构忽略总体对象与单一对象差异,统一使用组合结构的所有对象组合(Composite)模式的结构组合(Composite)模式的参与者Component为组合对象声明接口声明一个接口用于访问和管理Component的子组件Leaf表示叶节点对象,没有子节点定义图元对象的行为Composite定义复合部件的行为存储子部件Client通过Component接口操纵组合部件的对象组合(Composite)模式的效果定义了包含基本对象和组合对象的类层次结构简化客户代码,一致使用组合对象和单个对象容易增加新类型的组件用户使用Component类接口与组合结构中的对象进行交互。如果接收者是叶节点,直接处理请求;如果接收者是Composite,将请求发送给它的子部件,在转发请求之前和/或之后可能执行一些辅助操作组合(Composite)模式案例文件系统(浏览不同类型的文件)组合(Composite)模式案例水果盘问题:在水果盘(Plate)中有一些水果,如苹果(Apple)、香蕉(Banana)、梨子(Pear),当然大水果盘中还可以有小水果盘,现需要对盘中的水果进行遍历(吃),当然如果对一个水果盘执行“吃”方法,实际上就是吃其中的水果。组合(Composite)模式案例结构型设计模式总结Adapter、Bridge、FacadeAdapter用于两个已有的不兼容接口之间的转接Bridge用于将一个抽象与多个可能的实现进行桥接Facade用于为复杂的子系统定义一个新的简单易用的接口Composite

文档评论(0)

糖糖老师 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档