


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件设计模式、目标、原则 软件设计模式一、设计目标:、软件设计目标:正确性、健壮性、灵活性、可重用性、高效性1、正确性:也就是满足应用程序的需求。2、健壮性:是指软件对于规范要求以外的输入情况的处理能力。也就是说,在异 常情况下,软件能够正常运行的能力。3、灵活性:就是可以允许代码修改平稳地发生,而不会波及到很多其他的模块。4、可重用性:也就是重复使用的意思。5、高效性:一般指两个方面,一是执行效率,二是存储效率。、良好设计的特征:可扩展性、灵活性、可插入性1、可扩展性:新功能容易加入,而且不会影响已有功能,即不“僵硬”2、灵活性:修改一个地方,不会影响其他,即不“脆弱”3、可插入性:用一个容
2、易替换另一个类,只要它们实现相同接口即可,即低“黏 度”、面向对象的三大特征:继承性、封装性、多态性1、继承性:特殊类的对象具有其一般类的对象的全部属性和行为,即称特殊类对 一般类的继承。2、封装性:把对象的属性和行为组合成为一个独立的单位或部件,并尽可能隐蔽 对象的内部细节,而只保留必要的对外接口,使之与外部发生联系。3、多态性:是指不同类型的对象接收相同的消息时,产生不同的行为、设计原则:、软件设计原则:单一职责原则、开闭原则、里氏替换原则、接口 分离原则、依赖倒置原则1、单一职责原则(SRP :一个类应该有且只有一个改变的理由,它要求“一个设 计元素只做一件事”。2、开闭原则(OCP :
3、不修改原有类就能扩展一个类的行为。也就是说,一个软件 实体应当对扩展开放,对修改关闭。3、里氏替换原则(LSP :子类能替换其超类(is-a关系),也就是说子类型( subtype )必须能替换其基类型( base type )。4、接口分离原则(ISP):使用多个专门的接口比使用单一的总接口更好;换言 之,从一个客户类的角度来讲:一个类对另外一个类的依赖性应当是建立在最小的 接口之上的;不应该强迫客户程序依赖于它们不用的接口5、依赖倒置原则(DIP):要依赖于抽象,不要依赖于具体:也就是说,抽象不应 当依赖于细节,细节应当依赖于抽象;要针对接口编程,不要针对实现编程。三、设计模式:、软件设计
4、模式的定义:1、模式:是做事的一种方法,也即是实现某个目标的途径,或者技术。2、设计模式:描述了软件设计过程中某一类常见问题的一般性的解决方案3、设计模式:是类的联合体以及与之相伴的算法,这些算法能够实现共同的设计 目标。设计模式表达了一种思想而不仅仅是固定的类联合体,相伴的算法表示模式 的基本操作。、面向对象设计模式的定义:1 、面向对象设计模式:描述了面向对象设计过程中,特定场景下,类与相互通信 的对象之间常见的组织关系。2、面向对象设计模式描述的是软件设计,因此它是独立于编程语言的,但是面向 对象设计模式的最终实现仍然要使用面向对象编程语言来表达、设计模式的分类: 、依据设计模式的行为方
5、式,也即其目的,将设计模式分为三种类型:创建型模式、结构型模式、行为型模式:a、创建型模式:以灵活的方式创建对象的集合,如:工厂模式、抽象工厂模式、 建造者模式、单件模式、原型模式等。B、结构型模式:代表相关对象的集合,如:适配器模式、装饰模式、桥接模式、 享元模式、外观模式、代理模式、组合模式。C、行为型模式:在对象集合中捕获行为,如:模板方法模式、观察者模式、迭代 子模式、责任链模式、备忘录模式、命令模式、状态模式、访问者模式、中介者模式、策略 模式。 、根据设计意图可分为五类:接口型设计模式、责任型设计模式、构造型设计模式、操作型设计模式、扩展型设计模式。、设计模式的主要职责(意图):1
6、、简单工厂设计模式:一个工厂类处于对产品类实例化的中心位置上,它知道每 一个产品,它决定哪一个产品类应当被实例化。这个模式的优点是允许客户端相对 独立于产品创建的过程,并且在系统引入新产品的时候无需修改客户端,也就是说,它在某种程度 上支持“开 -闭”原则。2、工厂方法设计模式:是定义一个创建产品对象的工厂接口,将实际创建工作推 迟到子类中。在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变 化,这个对象 经常面临着剧烈的变化,但是它却拥有比较稳定的接口3 抽象工厂设计模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指 定它们具体的泪。抽象工厂模式主要是用于创建一个产品族,而
7、不是一个一个具体的产 品。4 建造者模式:将产品的内部表象与产品的生成过程分割开来,从而可以使一个建 造过程生成具有不同的内部表象的产品对象。也就是说,它将一个复杂的构建与其表示相 分离,使得同样的构建过程可以创建不同的表示。5单件模式:一个类仅有一个实例,并提供一个访问它的全局访问点。也就是说, 单件模式的要点是:某个类只能有一个实例;它必须自行创建这个实例;它必须自行向整 个系统提供这个实例。6原型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这 个原型对象的办法创建出更多类型的对象。7适配器设计模式:将接口不同而功能相同或相近的两个接口加以转换。8装饰模式:装饰模式以对
8、客户透明的方式动态地给一个对象附加上更多的责任。 换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式可以在不使用创造 更多子类的情况下,将对象的功能加以扩展。9桥接模式:将抽象化与实现化脱耦,使得二者可以独立地变化。实现系统可能有 多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化, 减少它们之间的耦合。10 组合模式:当需求中是体现部分与整体层次的结构时,以及你希望用户可以忽 略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑到组合模 式了。11 模板方法模式:当我们要完成某一细节层次一致的一个过程或一系列步骤,但 其个别步骤在更
9、详细的层次上的实现可能不同时,我们通常考虑用模板方法模式来处理。12 观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一 个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动 更新自己。13 迭代子模式:通过设计一个迭代器,这个迭代器提供一种方法,可以顺序访问 聚合对象中的各个元素,但又不暴露该对象的内部表示。14 责任链模式:为解除请求者和接受者之间的耦合,而使多个对象都有机会处理 这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。15 备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对 象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。16 命令模式:目的是解除命令发出者和接收者之间的耦合关系,是二者相对独 立,有利于程序的并行开发和代码的维护。命令模式的核心思想是将请求封装一个对象,将其 作为命令发起者和接受者的中介,而抽象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》模拟题库及答案详解【易错题】
- 教师招聘之《小学教师招聘》考前冲刺练习题库提供答案解析附参考答案详解(黄金题型)
- 空天彗星数据采集创新创业项目商业计划书
- 教师招聘之《小学教师招聘》考试黑钻押题及参考答案详解【突破训练】
- 教师招聘之《小学教师招聘》考试综合练习附参考答案详解(完整版)
- 2025年教师招聘之《小学教师招聘》综合提升试卷【典型题】附答案详解
- 2025贵阳市农业农垦投资发展集团有限公司招聘笔试备考附答案详解(黄金题型)
- 2025年教师招聘之《幼儿教师招聘》题库必背100题附答案详解(黄金题型)
- 合肥市残疾儿童随班就读支持保障体系的构建与完善:困境与突破
- 教师招聘之《小学教师招聘》试卷带答案详解(培优)
- 第十三章 三角形 单元测试 2025-2026学年人教版(2024)八年级数学上册
- 女生的青春期健康教育
- 乡村医生法律法规知识
- 2025年广东省中考物理试题卷(含答案)
- 第一单元 写作《热爱写作学会观察》课件 学年统编版语文七年级上册
- 钙钛矿有机叠层太阳能电池界面工程与载流子传输机制
- 病媒生物防培训课件
- 2025秋人教版(2024)八年级上册地理 【教学课件】1.1.1 《疆域》
- 《生产运营管理》 课件 第15章-数字化转型背景下生产运营模式
- 净菜加工培训
- 中国肿瘤药物相关血小板减少诊疗专家共识(2023版)
评论
0/150
提交评论