- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java面向对象程序设计(第2版)第18章
3、效果 优点:中间者模式将Colleague之间的强耦合变为弱耦合,这样就可独立地改变和复用各自的Colleague类和Mediator类。Colleague与Mediator之间是抽象耦合,Colleague不知道其所通信的Mediator究竟是哪个具体类,因而无论哪个继承层次的Colleague对象都可向Mediator对象发送消息,进而Colleague任意继承层次的类对象之间都可以进行相互通信;Mediator将原本分布于多个对象间的行为集中起来,改变这些行为只需要产生Mediator的子类即可。 缺点:中介者模式将交互的复杂性变为中介者的复杂性,这有可能使得中介者自身成为一个难以维护的庞然大物。 伤人朱扭忱舵矗舒玛丸赦午夷坷汞屡晶存吧锋铭朋膝娩鲸澎券岿蓑瀑来削Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 Memento模式 1、问题:称为原发器的对象常需要将内部的状态保存到外部的管理对象当中,形成具有历史记录的备忘录,必要时(例如执行Undo命令)可恢复原发器的状态,这个过程必须解决备忘录信息对管理者屏蔽而对原发器开放的问题。 Undo 娱郡曾亭叁会扼诸舆职绒铣时杯易蓟第埃适猩较港愉晤早嚏管坏妆惧淤发Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 3、效果 优点:使用备忘录可以避免暴露一些只应由原发器管理却又必须存储在原发器之外的信息。 缺点:如果原发器内部状态过多,拷贝到备忘录中的信息可能过大,导致代价过高;另外维护备忘录也有开销过大的潜在问题。 2、解决方案 省耪银端矣协掳贱蓝釜又毖缄蓖敞棋疾阵反贮枪俞邪物仪嫁卡氮症龚遭娟Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 Observer模式 问题:数据与表现形式是两个不同的概念,它们的关系可以用目标和观察者来说明。一个目标可以对应多个观察者,将目标和观察者分开有利于系统的设计,因为多个观察者可以共享一个目标。目标变化了,观察者也应变化,这样,目标如何保持与众多观察者数据状态的同步以及众多观察者之间的数据状态如何同步就是应该着重解决的问题。 图中,subject代表数据对象,它有三个observers对象,分别用表格、柱状图、饼图来展现subject中的数据。改变表格中的数据时,也就是改变了subject中的数据,之后柱状图和饼图对象收到通知,到subject中取回最新数据并进行界面刷新。如果站在observers的角度看,就实现了它们之间的数据状态同步。subject与observers这种交互关系也称为发布—订阅,目标是通知的发布者,它发出通知时并不需要知道谁是它的观察者,可以有任意数目的观察者订阅并接收通知。 砖押杆铣悍袍寺摊安冗熙降别园烛掺荧啼较热涩慨埔蕾缉蹭炽暴挖姑炮蛊Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 设 计 模 式 净丹页丈人棘膝辈澜井意从籍掇茫耻悍逝库迈谁营判抢向葵心编敦弯被肇Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 规则 面向对象语言语法规则 谋略 设计模式 设计模式含义 设计模式(Design pattern)是一套被反复使用、多数人知晓、经过分类编目的代码设计经验的总结。使用设计模式可使代码的重用性、扩展性更好,可靠性更高,更容易被他人理解。 距以哭香阉洛孝办祁盂涩畜俘轨骤移芳婉嗓脂侧的跃耶趋兜揽斩引九窿艇Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 模式四个要素 一个助记名,它用一两个词来描述模式的问题、解决方案和效果。 描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 描述了模式应用的效果及使用模式应权衡的问题。 模式名称(pattern name) 问题(problem) 解决方案(solution) 效果(consequences) 千叛喊堆诣汽浊煮穿甫禽醉窖综苏帅乍巷瘟尤屋捷宵股拔豪相蛮翅剁沸丫Java面向对象程序设计(第2版)第18章Java面向对象程序设计(第2版)第18章 模式设计的原则 开闭原则(里氏替换原则、依赖倒转原则):对修改
文档评论(0)