软件设计模式与体系结构复习资料_第1页
软件设计模式与体系结构复习资料_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计准则I:正确性和健壮性正确性:每个项目都要满足指定的需求,然后一起满足所有应用程序的需求,设计的正确性一般是指充分性,实现正确性的正式方法是依靠数学逻辑,非正式方法是判断设计是否满足所需的功能,当进入详细设计阶段时,经常采用正式方法来判断正确性。模块可是类或者类的包,包的接口和类的接口不同,包不能被实例化,通过包来使用接口的一种方法是利用包中指定对象来提供相应的接口。为了模块化特定的应用程序,在高层需要创建包,在底层需要创建类设计中用到两种类:领域类和非领域类,一般是从领域类开始类的选择,然后扩展到非领域类,非领域类通常用于概括领域类。健壮性:防止错误输入,防止开发错误;提高健壮性的办法:检查输入、初始化、参数传递技术、检查参数是否违反约束的方法、在类中捕获参数、包装参数、强化意图。设计准则II灵活性、可重用性、高效性灵活性:在设计时通常要考虑到将来的变化;增加新功能要依据其上下文和应用范围可重用性:一个方法相对于上下文环境越独立,其可重用性就越高;完全指定、避免不必要的封装类耦合、让名字更具表达性、解释算法。高效性:应用程序必须在指定时间内完成特定的功能,同样,对内存容量也有一定的要求设计模式引言:设计目标是:灵活性、健壮性、可重用性设计原则:面向接口编程的原则(面向接口编程而不是面向实现编程)、可变性封装、开—闭原则(对扩展开放,对修改关闭)、里氏替换原则(适用于父类,但不一定适用子类)组合/聚合原则(尽量使用组合聚合/聚合,尽量不使用继承);接口隔离原则(避免接口污染)、依赖倒转原则(高层低层依赖于抽象、细节依赖于抽象)、迪米特原则(不和陌生人说话)、单一原则模式的四个基本要素:问题(描述了应该在何时使用模式)、解决方案(描述了设计的组成成分)、效果(描述了模式应用的效果及使用模式应该权衡的问题)、模式名称设计模式分类:按照目的可以分为:创建型、结构型、行为型按照范围可以分为:类模式、对象模式模式和框架的区别:1)设计模式比框架更抽象2)设计模式是比框架更小的体系结构元素3)框架比设计模式更加特例化创建型模式:创建型模式包括抽象工厂模式、生成器模式、工厂模式、原型模式、单件模式创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。随着系统演化地越来越依赖于对象复合而不是类继承,创建型模式变得更为重要创建型模式在什么被创建、谁创建它、它是怎样被创建的以及何时创建这些方面给予很大的灵活性抽象工厂模式:意图:提供一个创建一系列相关或相互依赖对象的接口而不需要指定他们具体的类别名:KIT适用性:1)一个系统不应当依赖于产品类实例如何被创建、组合和表达的细节2)这个系统的产品有多余一个的产品族,而系统只消费其中某一个族的产品3)同属于一个产品族的产品是在一起使用的4)系统提供一个产品类的库,所有产品以同样的接口实现,从而使客户端不依赖于实现参与者:抽象工厂角色(核心)、具体工厂(在客户端的调用下创建实例)、抽象产品(所拥有的共同接口)、具体产品效果:1)分离了具体的类2)使得易于交换产品系列3)有利于产品的一致性4)难以支持新种类的产品实现:1)将工厂作为一个单件2)创建产品3)定义可扩展的工厂相关:AbstractFactory类通常用工厂方法实现,一个具体工厂通常是一个单件工厂方法模式:意图:定义一个用于创建对象的接口,让子类决定实例化哪个类。FactoryMethod使个类的实例化延迟到其子类别名:虚构造器适用性:1)当一个类不知道它所必须创建的对象的类的时候2)当一个类希望由他的子类来指定他所创建的对象的时候效果:1)多态性:客户代码可以做到与特定应用无关,适用于任何实体类2)子类提供挂钩。基类为工厂方法提供缺省实现,子类可以重写新的实现,也可以继承父类的实现。--加一层间接性,增加了灵活性3)封装性好,扩展性好,屏蔽产品类4)需要Creator和相应的子类作为factorymethod的载体,如果应用模型确实需要creator和子类存在,则很好;否则的话,需要增加一个类层次单件模式:意图:保证一个类有且只有一个实例,并提供一个访问它的全局访问点适用性:1)当类只能有一个实例而且客户可以从一个众所周知的访问点访问它2)当这个唯一实例应该是通过子类化可扩展的,并且客户应该无需更改代码就能使用一个扩展类的实例优点:1)对唯一实例的受控访问2)缩小名空间3)允许对操作和表示的精化4)比类操作更灵活使用单件模式的要点:单件模式中的实例构造器可以设置为protected以允许子类派生;单件模式只考虑到了对象创建的管理,没有考虑对象销毁的管理。实现:保证一个唯一的实例;创建单件类的子类名称:上下文关键字解决方案:1)基于功能分解,可以共享访问数据表示;2)基于隐藏设计决策的分解名称:仪器软件解决方案:1)改进后的管道过滤器模型2)专用化模型名称:移动机器人解决方案:1)控制环路2)分层体系结构3)隐式调用4)黑板体系结构体系结构评估方法:1)SAAM(软件架构分析方法)体系结构的描述、场景的形成、场景的分类和优先级的确定、对间接场景的单个评估、场景相互作用的评估、形成总体评估2)ATAM(体系结构权衡分析方法)步骤:1)描述:描述ATAM方法描述商业动机、描述体系结构2)调查与分析:确定体系结构方法、生成质量属性效用树、分析体系结构方法3)测试:集体讨论并确定场景优化级分析架构方法4)形成报告:描述评估结果评估所关注的属性:性能、可靠性、可用性、安全性、可修改性、功能性、可变性、可继承性、互操作性在体系结构中,一般采用刺激、环境、响应来描述场景主要的评估方式:调查问卷、基于场景、基于度量ATAM的场景:用例场景、成长场景、考察场景。5.SAAM的场景:直接场景、间接场景。流行的软件体系结构:1•分布式构件技术:CORBA规范、Sun的Java平台、Microsoft的.NET平台分布式构件体系结构:J2EE、.NETJ2EE使用多层分布式应用模型,最基本的Java构件是在J2ME中的JavaBean,JavaBean包括实例变量(InstaneeVariable)和get()、set()方法来访问实例变量的数据。J2EE构件:客户端构件、Web构件、业务逻辑构件EJB构件:远程接口、本地接口、BEAN类,EJB容器为EJB构件提供事务管理、持久性、安全性和并发控制等系统服务。面向服务的体系结构的特征:松散耦合、位置透明、协议独立7.SOA中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论