设计模式-03-结构型设计模式

上传人:苏**** 文档编号:320164135 上传时间:2022-06-30 格式:PPT 页数:10 大小:382KB
返回 下载 相关 举报
设计模式-03-结构型设计模式_第1页
第1页 / 共10页
设计模式-03-结构型设计模式_第2页
第2页 / 共10页
设计模式-03-结构型设计模式_第3页
第3页 / 共10页
设计模式-03-结构型设计模式_第4页
第4页 / 共10页
设计模式-03-结构型设计模式_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《设计模式-03-结构型设计模式》由会员分享,可在线阅读,更多相关《设计模式-03-结构型设计模式(10页珍藏版)》请在金锄头文库上搜索。

1、结构型设计模式结构型设计模式Composite模式l动机(Motivation)l在某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。l如何将“客户代码与复杂的对象容器结构”解耦?l让对象容器自己来实现自身的复杂结构,从而使得客户代码就像处理简单对象一样来处理复杂的对象容器?意图(Intent)l将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。结构(Structure)Composite 的几个要点的几个要点lCom

2、posite模式采用树形结构来实现普遍存在的对象容器,从而将“一对多”的关系转化为“一对一”的关系,使得客户代码可以一致地处理对象和对象容器,无需关心处理的是单个的对象,还是组合的对象容器。l将“客户代码与复杂的对象容器结构”解耦是Composite的核心思想,解耦之后,客户代码将与纯粹的抽象接口而非对象容器的内部实现结构发生依赖,从而更能“应对变化”。lComposite模式在具体实现中,可以让父对象中的子l对象反向追溯;如果父对象有频繁的遍历需求,可使用缓存技巧来改善效率。Facade 模式l系统的复杂度动机(Motivation)l上述A方案的问题在于组件的客户和组件中各种复杂的子系统有

3、了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。l如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?意图(Intent)l为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构(Structure)Facade的几个要点的几个要点l从客户程序的角度来看, Facade模式不仅简化了整个组件系统的接口,同时对于组件内部与外部客户程序来说,从某种程度上也达到了一种“解耦”的效果内部子系统的任何变化不会影响到Facade接口的变化。lFacade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式。lFacade设计模式并非一个集装箱,可以任意地放进任何多个对象。Facade模式中组件的内部应该是“相互耦合关系比较大的一系列组件”,而不是一个简单的功能集合。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 开发文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号