软件设计模式体系结构复习资料.pdf

上传人:l**** 文档编号:74120412 上传时间:2023-02-24 格式:PDF 页数:7 大小:617.98KB
返回 下载 相关 举报
软件设计模式体系结构复习资料.pdf_第1页
第1页 / 共7页
软件设计模式体系结构复习资料.pdf_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《软件设计模式体系结构复习资料.pdf》由会员分享,可在线阅读,更多相关《软件设计模式体系结构复习资料.pdf(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、-设计准则 I:正确性和强健性 1.正确性:每个工程都要满足指定的需求,然后一起满足所有应用程序的需求,设计的正确性一般是指充分性,实现正确性的正式方法是依靠数学逻辑,非正式方法是判断设计是否满足所需的功能,当进入详细设计阶段时,经常采用正式方法来判断正确性。2.模块可是类或者类的包,包的接口和类的接口不同,包不能被实例化,通过包来使用接口的一种方法是利用包中指定对象来提供相应的接口。3.为了模块化特定的应用程序,在高层需要创立包,在底层需要创立类 4.设计中用到两种类:领域类和非领域类,一般是从领域类开场类的选择,然后扩展到非领域类,非领域类通常用于概括领域类。5.强健性:防止错误输入,防止

2、开发错误;提高强健性的方法:检查输入、初始化、参数传递技术、检查参数是否违反约束的方法、在类中捕获参数、包装参数、强化意图。设计准则 II 灵活性、可重用性、高效性 1.灵活性:在设计时通常要考虑到将来的变化;增加新功能要依据其上下文和应用围 2.可重用性:一个方法相对于上下文环境越独立,其可重用性就越高;完全指定、防止不必要的封装类耦合、让名字更具表达性、解释算法。3.高效性:应用程序必须在指定时间完成特定的功能,同样,对存容量也有一定的要求 设计模式引言:1.设计目标是:灵活性、强健性、可重用性 2.设计原则:面向接口编程的原则面向接口编程而不是面向实现编程、可变性封装、开闭原则对扩展开放

3、,对修改关闭、里氏替换原则适用于父类,但不一定适用子类、组合/聚合原则尽量使用组合聚合/聚合,尽量不使用继承;接口隔离原则防止接口污染、依赖倒转原则高层低层依赖于抽象、细节依赖于抽象、迪米特原则不和陌生人说话、单一原则 3.模式的四个根本要素:问题描述了应该在何时使用模式、解决方案描述了设计的组成成分、效果描述了模式应用的效果及使用模式应该权衡的问题、模式名称 4.设计模式分类:按照目的可以分为:创立型、构造型、行为型 按照围可以分为:类模式、对象模式 5.模式和框架的区别:1)设计模式比框架更抽象 2)设计模式是比框架更小的体系构造元素 3)框架比设计模式更加特例化 创立型模式:1.创立型模

4、式包括抽象工厂模式、生成器模式、工厂模式、原型模式、单件模式 2.创立型模式抽象了实例化过程,它们帮助一个系统独立于如何创立、组合和表示它的那些对象 3.一个类创立型模式使用继承改变被实例化的类,而一个对象创立型模式将实例化委托给另一个对象。4.随着系统演化地越来越依赖于对象复合而不是类继承,创立型模式变得更为重要 5.创立型模式在什么被创立、谁创立它、它是怎样被创立的以及何时创立这些方面给予很大的灵活性 6.抽象工厂模式:意图:提供一个创立一系列相关或相互依赖对象的接口而不需要指定他们具体的类 别名:KIT 适用性:-1)一个系统不应当依赖于产品类实例如何被创立、组合和表达的细节 2)这个系

5、统的产品有多余一个的产品族,而系统只消费其中*一个族的产品 3)同属于一个产品族的产品是在一起使用的 4)系统提供一个产品类的库,所有产品以同样的接口实现,从而使客户端不依赖于实现 参与者:抽象工厂角色核心、具体工厂在客户端的调用下创立实例、抽象产品所拥有的共同接口、具体产品 效果:1别离了具体的类 2使得易于交换产品系列 3有利于产品的一致性 4难以支持新种类的产品 实现:1将工厂作为一个单件 2创立产品 3定义可扩展的工厂 相关:AbstractFactory 类通常用工厂方法实现,一个具体工厂通常是一个单件 工厂方法模式:意图:定义一个用于创立对象的接口,让子类决定实例化哪个类。Fact

6、ory Method 使一个类的实例化延迟到其子类 别名:虚构造器 适用性:1当一个类不知道它所必须创立的对象的类的时候 2当一个类希望由他的子类来指定他所创立的对象的时候 效果:1多态性:客户代码可以做到与特定应用无关,适用于任何实体类 2子类提供挂钩。基类为工厂方法提供缺省实现,子类可以重写新的实现,也可以继承父类的实现。-加一层间接性,增加了灵活性 3封装性好,扩展性好,屏蔽产品类 4需要 Creator 和相应的子类作为 factory method 的载体,如果应用模型确实需要 creator 和子类存在,则很好;否则的话,需要增加一个类层次 单件模式:意图:保证一个类有且只有一个实

7、例,并提供一个它的全局点 适用性:1当类只能有一个实例而且客户可以从一个众所周知的点它 2)当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展类的实例 优点:1对唯一实例的受控 2缩小名空间 3允许对操作和表示的精化 4比类操作更灵活 使用单件模式的要点:单件模式中的实例构造器可以设置为 protected 以允许子类派生;单件模式只考虑到了对象创立的管理,没有考虑对象销毁的管理。实现:保证一个唯一的实例;创立单件类的子类/本质:存中只能有一个对象/案例:定时器,计数器/使用场景:一个工程只要一个共享点和共享数据;创立对象消耗资源比拟多,如 IO 操作和数据库读取

8、/注意:线程平安 public sealed class Singleton -private static Singleton _singleton=null;private static readonly object _synLock=new object();private Singleton()public static Singleton GetInstance()lock(_synLock)if(_singleton=null)_singleton=new Singleton();return _singleton;构造型模式:1.构造型模式涉及到如何组合类和对象以获得更大的构造

9、。2.构造型类模式采用继承机制来组合接口或者实现。3.构造型模式包括:适配器模式类对象、组合模式对象、装饰模式对象 4.适配器模式:意图:将一个类的接口转化为客户希望的另外一个接口,Adapter 模式使得原本由于接口不兼容而不能够在一起工作的类可以一起工作 别名:包装器 适用性:1想使用一个已经存在的类,但接口不符合需要 2)想创立一个可复用的类,该类可以和其他不相关的类和不可预见的类协同工作 3)想使用一些已经存在的类,但不可能对每一个都子类化以匹配他们的接口,对象适配器可以可以适配他们的父类接口 构造:类适配器使用多重继承 对象适配器使用对象组合 效果:类适配器:1用一个具体的类适配 A

10、daptee 和 Target,当想要匹配一个类及他的子类的时候,类 Adapter 将不再适用 2Adapter 可以重新定义 Adaptee 的局部方法 3仅仅引入了一个对象,不需要额外的指针 对象适配器:1允许 Adapter 和一个或者多个 Adaptee 进展适配,Adapter 可 以一次性给多个 Adaptee 添加功能 2)使得重新定义 Adaptee 的局部希望变得困难 考前须知:1Adapter 的匹配程度 2可插入的 Adapter 3)使用双向适配器通过透明操作 实现:可插入的适配器的实现方法:使用抽象操作、使用代理对象、参数化的适配器 组合模式:意图:将对象组合成数构

11、造以表示“整体局部构造,组合模式使得用户对单个对象和组合对象的使用具有一致性 适用性:1想表示对象的“整体局部的构造 2)希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合构造中-的对象 效果:1通过递归组合,在客户端代码中,任何用到根本对象的地方都可以使用组合 对象 2)简化客户代码,客户可以一致地使用组合构造和单个对象 3)使得更容易添加新类型的组件 4)设计一般化,由于容易添加新组件,也将容易带来新问题 装饰模式:意图:动态地给一些对象添加一些额外的职责。别名:包装器模式 适用性:1在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责 2)处理那些可以撤销的职责 3)当

12、不能采用生成子类的方法进展扩大时。效果:1比静态继承更灵活 2防止在层次构造高层的类有太多的特征 3Decorator 余它的 ponent 不一样 4有许多小对象 使用考前须知:1接口的一致性 2省略抽象的 Decorator 类 3保持 ponent类的简单性 行为模式:迭代器模式:意图:提供一种方法顺序一个集合对象中的各个元素,而不暴露该对象的部表示 别名:游标 适应性:1一个聚合对象的容而无需暴露它的部表示 2)支持对聚合对象的多重遍历 3)支持多重迭代 效果:1它支持以不同的方式遍历一个聚合 2简化了聚合的接口 3在同一个聚合上可以有多个遍历 观察者模式:意图:定义对象间的一对多的关

13、系,当一个对象的状态发生变化时,所有依赖于他的对象都得到通知并被自动更新 别名:依赖,发布订阅 适用性:1当一个抽象模式有两个方面,其中一个方面依赖于另一个方面,将这二者封装在独立的对象中以使它们可以各自独立地改变及复用 2)当对一个对象的改变需要同时改变其他对象,而不知道有多少对象有待改变 3)当一个对象必须通知其他对象,但又不能假定其他对象是谁 效果:1目标和观察者间的抽象耦合 2支持播送通信 3意外的更新 状态模式:意图:允许一个对象在其部状态发生改变时改变了它的询问,对象看起来似乎改变了它的类 别名:状态对象-适用性:1一个对象的行为取决于他的状态,并且它必须在运行时刻根据状态改变它的

14、行为 2)一个操作中含有庞大的多分支语句,并且这些分支依赖于该对象的状态 效果:1将有特定效果的行为局部化,并将不同状态的行为分割开来 2使得状态转换显示化 3State 对象可被共享 体系构造:定义:软件体系构造包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及这些模式中的约束。意义:1体系构造是风险承当者进展交流的手段 2体系构造有助于系统级关注点的理解 3体系构造是早期设计决策的表达 4软件体系构造是可传递和可重用的模型 作用:软件系统的体系构造定义系统由计算构件和构件之间的相互作用组成;体系构造还指出了系统需求和已构建系统的元素之间的对应关系,能为设计方案的选择提供

15、根本原则。研究容:1通过提供一种新的体系构造描述语言Architectural Description Language解决体系构造描述问题 2)体系构造领域知识的总结性研究。3)针对特定领域的框架的研究。4)软件体系构造形式化支持的研究。框架、体系构造、设计模式三者的比拟:1)设计模式是对在*种环境中反复出现的问题以及解决该问题的方案的描述,比框架更抽象;2)框架可用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示 3)设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对*一特定应用领域,但同一模式却可适用于各种不同的应用。4)体系构造风格描述了软件

16、系统的整体组织构造,它独立于实际问题。而设计模式和应用框架更加面向具体问题。常见的体系构造的优缺点:两层 C/S 构造:优点:1强大的数据操作和事务处理能力,模型思想简单,易于人们理解和承受。2硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进展扩大和缩小 3大的应用处理任务分布到许多通过网络连接的低本钱计算机上,以节约大量费用。缺点:开发本钱较高、客户端程序设计复杂、信息容和形式单一、用户界面风格不一、软件移植困难、软件维护和升级困难、新技术不能轻易应用 三层 C/S 构造:优点:1允许合理地划分三层构造的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性和可扩展性 2允

17、许更灵活有效地选用相应的平台和硬件系统。并且这些平台和各个组成局部可以具有良好的可升级性和开放性。3应用的各层可以并行开发-4为严格的平安管理奠定了坚实的根底 缺点:1三层 C/S 构造各层间的通信效率假设不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能 2设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立性一样是三层 C/S 构造的关键问题。B/S 构造:优点:1基于 B/S 体系构造的软件,系统安装、修改和维护全在效劳器端解决,达 到了“零客户端的功能,很容易在运行时自动升级。2)B/S 体系构造还提供了异种机、异种网、异种应用效劳的联机、联网、

18、统一效劳的最现实的开放性根底 缺点:1B/S 体系构造缺乏对动态页面的支持能力,没有集成有效的数据库处理功 能 2)B/S 体系构造的系统扩展能力差,平安性难以控制。3)采用 B/S 体系构造的应用系统,在数据查询等响应速度上,要远远地低于 C/S 体系构造 4)数据的动态交互性不强,不利于在线事务处理(OLTP)应用 C/S 与 B/S 混合之“外有别模型:优点:外部用户不直接数据库效劳器,能保证企业数据库的相对平安;企业部用户的交互性较强,数据查询和修改的响应速度较快 缺点:企业外部用户修改和维护数据是速度较慢,较烦琐,数据的动态交互性不强 C/S 与 B/S 混合之“查改有别模型:优点:

19、优点表达了 B/S 体系构造和 C/S 体系构造的共同优点,即 B/S 对客户端要求不高,只需要查询的客户端只要安装浏览器即可,提供了开放性,实现修改的终端和效劳器之间采取 C/S 构造。缺点:外部用户能直接通过 Internet 连接到数据库效劳器,企业数据容易暴露给外部用户,给数据平安造成了一定的威胁 体系构造案例:1.名称:上下文关键字 解决方案:1基于功能分解,可以共享数据表示;2)基于隐藏设计决策的分解 2.名称:仪器软件 解决方案:1改良后的管道过滤器模型 2)专用化模型 3.名称:移动机器人 解决方案:1控制环路 2)分层体系构造 3)隐式调用 4)黑板体系构造 体系构造评估方法

20、:1)SAAM软件架构分析方法 体系构造的描述、场景的形成、场景的分类和优先级确实定、对间接场景的单个评估、场景相互作用的评估、形成总体评估 2)ATAM体系构造权衡分析方法 步骤:1描述:描述 ATAM 方法 描述商业动机、描述体系构造-2调查与分析:确定体系构造方法、生成质量属性效用树、分析体系构造方法 3测试:集体讨论并确定场景优化级 分析架构方法 4形成报告:描述评估结果 1.评估所关注的属性:性能、可靠性、可用性、平安性、可修改性、功能性、可变性、可继承性、互操作性 2.在体系构造中,一般采用刺激、环境、响应来描述场景 3.主要的评估方式:调查问卷、基于场景、基于度量 4.ATAM

21、的场景:用例场景、成长场景、考察场景。5.SAAM 的场景:直接场景、间接场景。流行的软件体系构造:1.分布式构件技术:CORBA 规、Sun 的 Java 平台、Microsoft 的.NET 平台 2.分布式构件体系构造:J2EE、.NET 3.J2EE:使用多层分布式应用模型,最根本的 Java 构件是在 J2ME 中的 JavaBean,JavaBean 包括实例变量Instance Variable和 get()、set()方法来实例变量的数据。4.J2EE 构件:客户端构件、Web 构件、业务逻辑构件 5.E 构件:远程接口、本地接口、BEAN 类,E 容器为 E 构件提供事务管理、持久性、平安性和并发控制等系统效劳。6.面向效劳的体系构造的特征:松散耦合、位置透明、协议独立 7.SOA 中的角色:效劳消费者、效劳提供者、效劳注册中心 8.Web 效劳核心技术:*ML、简单对象协议SOAP、Web 效劳描述语言(WSDL)、统一描述、发现和集成协议(UDDI):为代码的重用提供了一种模块化、面向对象的方式、定义了定位和识别其他组件功能的标准方式、是微软平台上所有构件的基石。

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

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁