设计模式-03-结构型设计模式
10页1、结构型设计模式结构型设计模式Composite模式l动机(Motivation)l在某些情况下,客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了代码的维护性、扩展性等弊端。l如何将“客户代码与复杂的对象容器结构”解耦?l让对象容器自己来实现自身的复杂结构,从而使得客户代码就像处理简单对象一样来处理复杂的对象容器?意图(Intent)l将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。结构(Structure)Composite 的几个要点的几个要点lComposite模式采用树形结构来实现普遍存在的对象容器,从而将“一对多”的关系转化为“一对一”的关系,使得客户代码可以一致地处理对象和对象容器,无需关心处理的是单个的对象,还是组合的对象容器。l将“客户代码与复杂的对象容器结构”解耦是Composite的核心思想,解耦之后,客户代码将与纯粹的抽象接口而非对象容器的内部实现结构发生依赖,从而更能“应对变化”。lComposite模式在具体实现中,可以让
2、父对象中的子l对象反向追溯;如果父对象有频繁的遍历需求,可使用缓存技巧来改善效率。Facade 模式l系统的复杂度动机(Motivation)l上述A方案的问题在于组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。l如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?意图(Intent)l为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构(Structure)Facade的几个要点的几个要点l从客户程序的角度来看, Facade模式不仅简化了整个组件系统的接口,同时对于组件内部与外部客户程序来说,从某种程度上也达到了一种“解耦”的效果内部子系统的任何变化不会影响到Facade接口的变化。lFacade设计模式更注重从架构的层次去看整个系统,而不是单个类的层次。Facade很多时候更是一种架构设计模式。lFacade设计模式并非一个集装箱,可以任意地放进任何多个对象。Facade模式中组件的内部应该是“相互耦合关系比较大的一系列组件”,而不是一个简单的功能集合。
《设计模式-03-结构型设计模式》由会员苏****分享,可在线阅读,更多相关《设计模式-03-结构型设计模式》请在金锄头文库上搜索。
《组织能力的突破:从杨三角看领先企业成功之道》杨国安
2022年第一季度人力资源关键指标专项调研报告
《全球中小微企业在疫情后时代的挑战、应对与转型》
个人信用信息基础数据库数据接口规范
CFCA统一的电子商务安全网上支付平台-系统安装指南
1104工程培训资料_模块09_信用风险分析
基础数据平台作业调度监控系统详细设计说明书
中小企业信贷系统用户需求规格说明书_合同管理
信贷统计监测数据系统详细设计说明书
非现场监管报表指标体系(金融机构法人机构适用)基础报表、特色报表填报说明
经营分析系统用户ETL测试计划书(ABIS部分)
经营分析系统工作汇报
Unix系统知识培训
经营分析系统测试大纲(ELT案例)
经营分析系统测试案例(OLAP案例)
顺义新城林河南大街配套工程实施方案
银行卡统计分析系统详细设计说明书(前台)
银行卡统计分析系统多维应用服务器安装部署
银行卡统计分析系统数据准确性测试案例
银行卡统计分析系统报表数据准确性测试案例
2024-02-20 162页
2024-02-20 52页
2024-02-20 50页
2024-02-20 50页
2024-02-20 57页
2024-02-20 66页
2024-02-20 53页
2024-02-20 91页
2024-02-20 63页
2024-02-20 55页