软件设计模式与体系结构复习资料.doc
上传人:王子****青蛙 上传时间:2024-09-14 格式:DOC 页数:14 大小:33KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

免费试读已结束,剩余 4 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

设计准则I:正确性与健壮性正确性:每个项目都要满足指定得需求,然后一起满足所有应用程序得需求,设计得正确性一般就是指充分性,实现正确性得正式方法就是依靠数学逻辑,非正式方法就是判断设计就是否满足所需得功能,当进入详细设计阶段时,经常采用正式方法来判断正确性。模块可就是类或者类得包,包得接口与类得接口不同,包不能被实例化,通过包来使用接口得一种方法就是利用包中指定对象来提供相应得接口。为了模块化特定得应用程序,在高层需要创建包,在底层需要创建类设计中用到两种类:领域类与非领域类,一般就是从领域类开始类得选择,然后扩展到非领域类,非领域类通常用于概括领域类。健壮性:防止错误输入,防止开发错误;提高健壮性得办法:检查输入、初始化、参数传递技术、检查参数就是否违反约束得方法、在类中捕获参数、包装参数、强化意图。设计准则II灵活性、可重用性、高效性灵活性:在设计时通常要考虑到将来得变化;增加新功能要依据其上下文与应用范围可重用性:一个方法相对于上下文环境越独立,其可重用性就越高;完全指定、避免不必要得封装类耦合、让名字更具表达性、解释算法。高效性:应用程序必须在指定时间内完成特定得功能,同样,对内存容量也有一定得要求设计模式引言:设计目标就是:灵活性、健壮性、可重用性设计原则:面向接口编程得原则(面向接口编程而不就是面向实现编程)、可变性封装、开—闭原则(对扩展开放,对修改关闭)、里氏替换原则(适用于父类,但不一定适用子类)、组合/聚合原则(尽量使用组合聚合/聚合,尽量不使用继承);接口隔离原则(避免接口污染)、依赖倒转原则(高层低层依赖于抽象、细节依赖于抽象)、迪米特原则(不与陌生人说话)、单一原则模式得四个基本要素:问题(描述了应该在何时使用模式)、解决方案(描述了设计得组成成分)、效果(描述了模式应用得效果及使用模式应该权衡得问题)、模式名称设计模式分类:按照目得可以分为:创建型、结构型、行为型按照范围可以分为:类模式、对象模式模式与框架得区别:设计模式比框架更抽象设计模式就是比框架更小得体系结构元素框架比设计模式更加特例化创建型模式:创建型模式包括抽象工厂模式、生成器模式、工厂模式、原型模式、单件模式创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合与表示它得那些对象一个类创建型模式使用继承改变被实例化得类,而一个对象创建型模式将实例化委托给另一个对象。随着系统演化地越来越依赖于对象复合而不就是类继承,创建型模式变得更为重要创建型模式在什么被创建、谁创建它、它就是怎样被创建得以及何时创建这些方面给予很大得灵活性抽象工厂模式:意图:提供一个创建一系列相关或相互依赖对象得接口而不需要指定她们具体得类别名:KIT适用性:一个系统不应当依赖于产品类实例如何被创建、组合与表达得细节这个系统得产品有多余一个得产品族,而系统只消费其中某一个族得产品同属于一个产品族得产品就是在一起使用得系统提供一个产品类得库,所有产品以同样得接口实现,从而使客户端不依赖于实现参与者:抽象工厂角色(核心)、具体工厂(在客户端得调用下创建实例)、抽象产品(所拥有得共同接口)、具体产品效果:1)分离了具体得类2)使得易于交换产品系列3)有利于产品得一致性4)难以支持新种类得产品实现:1)将工厂作为一个单件2)创建产品3)定义可扩展得工厂相关:AbstractFactory类通常用工厂方法实现,一个具体工厂通常就是一个单件工厂方法模式:意图:定义一个用于创建对象得接口,让子类决定实例化哪个类。FactoryMethod使一个类得实例化延迟到其子类别名:虚构造器适用性:1)当一个类不知道它所必须创建得对象得类得时候2)当一个类希望由她得子类来指定她所创建得对象得时候效果:1)多态性:客户代码可以做到与特定应用无关,适用于任何实体类2)子类提供挂钩。基类为工厂方法提供缺省实现,子类可以重写新得实现,也可以继承父类得实现。--加一层间接性,增加了灵活性3)封装性好,扩展性好,屏蔽产品类4)需要Creator与相应得子类作为factorymethod得载体,如果应用模型确实需要creator与子类存在,则很好;否则得话,需要增加一个类层次单件模式:意图:保证一个类有且只有一个实例,并提供一个访问它得全局访问点适用性:1)当类只能有一个实例而且客户可以从一个众所周知得访问点访问它当这个唯一实例应该就是通过子类化可扩展得,并且客户应该无需更改代码就能使用一个扩展类得实例优点:1)对唯一实例得受控访问2)缩小名空间3)允许对操作与表示得精化4)比类操作更灵活使用单件模式得要点:单件模式中得实例构造器可以设置为protected以允许子类派生;单件模式只考虑