- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计模式PPT-工大摘要
观察者模式的结构 观察者模式的参与者 Subject:抽象的主题,即被观察的对象 Observer:抽象的观察者 Concrete Subject:具体被观察对象 Concrete Observer:具体的观察者 注意:在观察者模式中,Subject通过Attach和Detach方法添加或删除所关联的观察者,并通过Notify进行更新,让每个观察者观察到必威体育精装版的状态 班主任老师有电话号码,学生需要知道班主任老师的电话号码以便于在合适时的时候拨打 在这样的组合中,老师是一个被观察者(Subject),学生就是需要知道信息的观察者 当老师的电话号码发生改变时,学生得到通知,并更新相应的电话记录 观察者模式的应用示例 观察者模式的应用示例 观察者模式分析 应用场景 对一个对象状态的更新,需要其他对象同步更新,而且其他对象的数量动态可变 对象仅需要将自己的更新通知给其他对象而不需要知道其他对象细节 优点 Subject和Observer之间是松偶合的,可以各自独立改变 Subject在发送广播通知时,无须指定具体的Observer,Observer可以自己决定是否要订阅Subject的通知 高内聚、低偶合 缺陷 松偶合导致代码关系不明显,有时可能难以理解 如果一个Subject被大量Observer订阅的话,在广播通知的时候可能会有效率问题 享元(Flyweght)模式的由来 当大量使用同一种类型的实例(每个实例中包含部分相同的数据),可能极大的耗费资源,使用Flyweight模式可以提高内存效率 以CD唱片为例,每个CD有三个字段:出片日期、歌唱者姓名、唱片曲目 姓名可能重复,可能有同一个演唱者的多个不同时期不同曲目的CD。歌唱者姓名可共享,其他字段均不可共享 当你有几千张甚至更多CD时,Flyweight模式将节省更多空间,共享的flyweight越多,空间节省也就越大 享元(Flyweght)模式的意图和适用性 意图:避免大量拥有相同内容的小类的开销,使大家共享一个类(元类) 适用性 一个应用程序使用了大量的对象 冗余使用了大量的对象,造成了很大的存储开销 享元(Flyweght)模式的结构 享元(Flyweght)模式的参与者 Flyweight:描述一个接口,可接受并作用于外部状态 ConcreteFlyweight:实现Flyweight接口,并为内部状态增加存储空间。必须是可共享的,存储的状态必须是内部的 UnsharedConcreteFlyweight:不强制共享 FlyweightFactory:创建并管理flyweight对象;确保合理地共享flyweight,提供已创建的flyweight实例或者创建一个(如果不存在的话) Client:维持一个对flyweight的引用;计算或存储一个(多个)flyweight的外部状态 享元(Flyweght)模式的参与者 Flyweight执行时所需的状态必定是内部或外部的。内部状态存储在ConcreteFlyweight中,外部对象则由Client对象存储或计算。当用户调用flyweight对象操作时,将该状态传递给它 用户不应直接对ConcreteFlyweight类进行实例化,而只能从FlyweightFactory对象得到ConcreteFlyweight对象,以保证对它们适当地进行共享 享元(Flyweght)模式的效果分析 Flyweight模式的核心就是把大量共享的对象收集在一起使用简单工厂模式进行管理,避免由于大量的小对象导致系统的内存过渡消耗 当重复对象较多时, Flyweight模式具有较好的空间性能,但在查找有哪些信誉好的足球投注网站上消耗了时间复杂度 代理(Proxy)模式的由来 某个客户端不能直接操作到某个对象,但又必须和那个对象有所互动 如果对象是一个大图片,需要花费很长时间才能显示出来,此时需要做个图片Proxy来代替真正的图片 如果对象在某远端服务器上,直接操作这个对象因为网络速度原因可能比较慢,那我们可以先用Proxy来代替那个对象 如何应对这种变化?如何提供一种机制让原本交互起来比较困难的两个对象实现畅通无阻地交流呢?如何保持系统的结构不随着需求改变而轻易改变?这就是代理模式 代理(Proxy)模式的意图和适用性 意图:为其他对象提供一种代理以控制对这个对象的访问 适用性: 远程代理为一个对象在不同的地址空间提供局部代表 虚代理在需要创建开销很大对象时缓存对象信息 保护代理控制对原始对象的访问 代理(Proxy)模式的结构 代理(Proxy)模式的参与者 Proxy 保存一个引用使得代理可以访问实体 提供一个与Subject的接口相同的接口,这样代理就可以用来替代实体 控制对实体的存取,并可能负责创建和删除它 其他功能依赖于代理的类型 Subject 定义C
您可能关注的文档
最近下载
- 新人教版高中数学必修第二册统计全套课件.pptx VIP
- 台球厅消防安全应急预案.docx VIP
- 海外代理协议合同协议.docx VIP
- 初中教科研课题:《初中语文预习方法研究》课题研究工作报告.doc VIP
- 2025至2030年中国新疆维吾尔自治区建筑市场运行态势及行业发展前景预测报告.docx
- 简述10KV 高压配电柜安装.doc VIP
- GB50148-2010 电气装置安装工程电力变压器油浸电抗器、互感器施工及验收规范.pdf VIP
- 2025航天恒星科技有限公司招聘80+人笔试历年参考题库附带答案详解.pdf
- RB∕T 174-2021 司法鉴定法庭科学机构能力专业要求.pdf
- CP-717安装指南.doc VIP
文档评论(0)