设计模式复习提纲

上传人:小** 文档编号:93203421 上传时间:2019-07-18 格式:DOC 页数:16 大小:467.50KB
返回 下载 相关 举报
设计模式复习提纲_第1页
第1页 / 共16页
设计模式复习提纲_第2页
第2页 / 共16页
设计模式复习提纲_第3页
第3页 / 共16页
设计模式复习提纲_第4页
第4页 / 共16页
设计模式复习提纲_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《设计模式复习提纲》由会员分享,可在线阅读,更多相关《设计模式复习提纲(16页珍藏版)》请在金锄头文库上搜索。

1、设计模式复习提纲第一章1. 状态图的定义 状态图用来描述一个特定对象的所有可能状态及其引起状态转移的事件。第二章1. 软件的可维护性和可复用性(?) 软件可维护性,即维护人员对该软件进行维护的难易程度,具体包括理解、改正、改动和改进该软件的难易程度。 可复用性:复用又叫重用,是重复使用的意思。2. 面向对象设计原则(1) 单一职责原则(2) 开闭原则(3) 里氏代换原则(4) 依赖倒转原则(5) 接口隔离原则(6) 合成复用原则(7) 迪米特法则3.单一职责原则定义 单一职责原则定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 另一种定义:就一个类而言,应该仅有一个引起它

2、变化的原因。4.开闭原则定义 开闭原则定义:一个软件实体应当对扩展开放,对修改关闭。5.里氏代换原则定义 里氏代换原则有两种定义方式。 第一种定义方式相对严格,其定义如下: 如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型S是类型T的子类型。 第二种更容易理解的定义方式如下: 所有引用基类(父类)的地方必须能透明地使用其子类的对象。6.依赖倒转原则定义 依赖倒转原则定义:高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 另一种表述为:要针对接口编程,不要针对实

3、现编程。7.接口隔离原则定义 接口隔离原则定义:客户端不应该依赖那些它不需要的接口。注意:在该定义中的接口指的是所定义的方法。 另一种定义方法:一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。8.合成复用原则定义 合成复用原则,又称为组合/聚合复用原则,其定义如下:尽量使用对象组合,而不是继承来达到复用的目的。9.迪米特法则定义 迪米特法则,又称为最少知识原则,它有多种定义方法,其中几种典型定义如下: (1) 不要和“陌生人”说话。(2) 只与你的直接朋友通信。(3) 每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的

4、软件单位。第三章1. 模式的定义 每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的解决方案,无需再重复相同的工作。可以用一句话简单表示为: 模式是在特定环境中解决问题的一种方案。2. 设计模式的定义 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。3. 设计模式的基本要素 设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:模式名称、问题、解决方

5、案、效果。4. 设计模式的分类(1)根据其目的(模式是用来做什么的)可分为创建型、结构型和行为型三种: 创建型模式主要用于创建对象。 结构型模式主要用于处理类或对象的组合。 行为型模式主要用于描述对类或对象怎样交互和怎样分配职责。(2)根据范围,即模式主要是用于处理类之间关系还是处理对象之间的关系,可分为类模式和对象模式两种: 类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,是属于静态的。 对象模式处理对象间的关系,这些关系在运行时刻变化,更具动态性。5. GoF设计模式简介 GoF 最先将模式的概念引入软件工程领域,他们归纳发表了23种在软件开发中使用频率较高的设

6、计模式,旨在用模式来统一沟通面向对象方法在分析、设计和实现间的鸿沟。6. 设计模式的优点 设计模式是从许多优秀的软件系统中总结出的成功的、能够实现可维护性复用的设计方案,使用这些方案将避免我们做一些重复性的工作,而且可以设计出高质量的软件系统。设计模式的主要优点如下: (1)设计模式融合了众多专家的经验,并以一种标准的形式供广大开发人员所用,它提供了一套通用的设计词汇和一种通用的语言以方便开发人员之间沟通和交流,使得设计方案更加通俗易懂。对于使用不同编程语言的开发和设计人员可以通过设计模式来交流系统设计方案,每一个模式都对应一个标准的解决方案,设计模式可以降低开发人员理解系统的复杂度。 (2)

7、设计模式使人们可以更加简单方便地复用成功的设计和体系结构,将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思路。设计模式使得重用成功的设计更加容易,并避免那些导致不可重用的设计方案。 (3)设计模式使得设计方案更加灵活,且易于修改。 (4)设计模式的使用将提高软件系统的开发效率和软件质量,且在一定程度上节约设计成本。 (5)设计模式有助于初学者更深入地理解面向对象思想,一方面可以帮助初学者更加方便地阅读和学习现有类库与其他系统中的源代码,另一方面还可以提高软件的设计水平和代码质量。补充:7.设计模式主题:复用与扩展。 8.设计模式基本原则(?) 同面向对象设计原则。广义工厂模式

8、包括:简单工厂模式、工厂方法模式、抽象工厂模式。第4章 简单工厂模式不是GoF23种模式中的一员补充:创建型模式概述: 创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。1. 定义: 简单工厂模式:又称为静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的

9、实例通常都具有共同的父类。2. 结构图:3. 主要优缺点: 简单工厂模式最大的优点在于实现对象的创建和对象的使用分离,将对象的创建交给专门的工厂类负责;但是其最大的缺点在于工厂类不够灵活,增加新的具体产品需要修改工厂类的判断逻辑代码,而且产品较多时,工厂方法代码将会非常复杂。第5章 工厂方法模式1. 定义: 工厂方法模式又称为工厂模式,也叫虚拟构造器模式或者多态工厂模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。2.

10、 结构图:3. 主要优缺点: 工厂方法模式的主要优点是增加新的产品类时无须修改现有系统,并封装了产品对象的创建细节,系统具有良好的灵活性和可扩展性;其缺点在于增加新产品的同时需要增加新的工厂,导致系统类的个数成对增加,在一定程度上增加了系统的复杂性。第6章 抽象工厂模式1. 定义: 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式。2. 结构图: 3. 主要优缺点: 抽象工厂模式的主要优点是隔离了具体类的生成,使得客户并不需要知道什么被创建,而且每次可以通过具体工厂类创建一个产品族中的多个对象,增加或者替换产品族

11、比较方便,增加新的具体工厂和产品族很方便;主要缺点在于增加新的产品等级结构很复杂,需要修改抽象工厂和所有的具体工厂类,对“开闭原则”的支持呈现倾斜性。第7章 建造者模式1. 定义: 建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。2. 结构图:3. 主要优缺点: 建造者模式的主要优点在于客户端不必知道产品内部组成的细节,将产品本身与产品的创建过程解

12、耦,使得相同的创建过程可以创建不同的产品对象,每一个具体建造者都相对独立,而与其他的具体建造者无关,因此可以很方便地替换具体建造者或增加新的具体建造者,符合“开闭原则”,还可以更加精细地控制产品的创建过程;其主要缺点在于由于建造者模式所创建的产品一般具有较多的共同点,其组成部分相似,因此其使用范围受到一定的限制,如果产品的内部变化复杂,可能会导致需要定义很多具体建造者类来实现这种变化,导致系统变得很庞大。第8章 原型模式1. 定义: 原型模式:原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建另外一个可定制的对象,无须知道任

13、何创建的细节。原型模式的基本工作原理是通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝原型自己来实现创建过程。2. 结构图:3. 主要优缺点: 原型模式最大的优点在于可以快速创建很多相同或相似的对象,简化对象的创建过程,还可以保存对象的一些中间状态;其缺点在于需要为每一个类配备一个克隆方法,因此对已有类进行改造比较麻烦,需要修改其源代码,并且在实现深克隆时需要编写较为复杂的代码。第9章 单例模式1. 定义:单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式的要点有三个:一是某个

14、类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。2. 结构图:3. 主要优缺点: 单例模式的主要优点在于提供了对唯一实例的受控访问并可以节约系统资源;其主要缺点在于因为缺少抽象层而难以扩展,且单例类职责过重。第10章 适配器模式补充:结构型模式概述: 结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式可以分为类结构型模式和对象结构型模式:类结构型模式关心类的组合,由多个类可以

15、组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,然后通过该对象调用其方法。根据“合成复用原则”,在系统中尽量使用关联关系来替代继承关系,因此大部分结构型模式都是对象结构型模式。1. 定义:适配器模式:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。2. 结构图:3. 主要优缺点: 适配器模式的主要优点是将目标类和适配者类解耦,增加了类的透明性和复用性,同时系统的灵活性和扩展性都非常好,更换适配器或者增加新的适配器都非常方便,符合“开闭原则”;类适配器模式的缺点是适配器类在很多编程语言中不能同时适配多个适配者类,对象适配器模式的缺点是很难置换适配者类的方法。第11章 桥接模式1. 定义:桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,

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

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号