《设计模式》Java版期末总结(共11页)_第1页
《设计模式》Java版期末总结(共11页)_第2页
《设计模式》Java版期末总结(共11页)_第3页
《设计模式》Java版期末总结(共11页)_第4页
《设计模式》Java版期末总结(共11页)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上第一章 设计模式概念1. 设计模式名词解释:一套被反复使用,多数人知晓,经过分类编目的优秀代码设计经验的总结。作用:重用代码,使代码更易理解,保证代码的可靠性。2. 可复用面向对象软件系统一般划分为两大类:应用程序工具箱、框架。3. Java设计模式贯彻的原理:面向接口编程,而不是面向实现。 目标原则:降低耦合,增强灵活性。4. 设计模式的要素模式名称、问题、环境或初始环境、解决方案、效果、举例、末态环境、推理、其他有关模式、已知的应用。5. 常用的设计模式有23种。 按特点分为三类:创建型,结构型,行为型。6. 创建型模式 定义:用来创建对象的模式,抽象了实例化的过

2、程,帮助一个系统独立于其 关联对象的创建、组合和表达方式。功能:将系统所使用的具体类的信息封装起来;隐藏类的实例是如何被创建和组织的。作用:封装创建逻辑,不仅仅是new一个对象那么简单;封装创建逻辑变化,客户代码尽量不修改,或尽量少修改。常见的创建型设计模式:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。7. 结构型模式 定义:类和对象的结构,它采用继承机制来组合接口或实现,或者通过组 合一些对象实现新的功能。 常见的结构型设计模式有:代理模式、装饰模式、适配器模式、组合模式、桥梁模式、外观模式、享元模式。8. 行为型模式 定义:关注的是对象的行为,用来解决对象之间的联系问题 常

3、见的行为型设计模式有: 模板方法模式、命令模式、责任链模式、策略模式、迭代模式、中介者模式、 观察者模式、备忘录模式、访问者模式、状态模式、解释器模式课后题:1、 设计模式起源于:建筑工程设计2、 下面不属于设计模式的要素的是:因素3、 目前有23中设计模式,分为3大类4、 设计模式分为创建型、结构型和行为型三大类型第二章 设计原则1.单一职责原则(SRP) 名词解释:一个类,只有一个引起它变化的原因,应该只有一个职责。 优点: 降低类的复杂性 提高类的可读性 提高代码的可维护性和复用性 降低因变更引起的风险。 作用:单一职责原则提出了一个编写程序的标准,用“职责”或“变化原因”来衡量接口 或

4、类设计是否优良,但“职责”和“变化原因”都是不可度量的。2.里氏替换原则(LSP) 名词解释:所有引用基类的地方必须能透明地使用其子类对象,反之则不行。 优点: 代码共享,减少创建类的工作量。 提高代码可重用性 提高代码的可拓展性 提高产品或项目的开发性。 体现里氏替换原则的有如下几个模式: 策略模式、组合模式、代理模式3.依赖倒置原则(DIP) 名词解释:高层模块不应该依赖低层模块,两者都应依赖其抽象,抽象不依赖细节,而细 节依赖抽象。 优点: 减少类间的耦合性 提高系统的稳定性,降低并行开发引起的风险。 提高代码的可读性和可维护性。 作用:适用于大中型项目,是实现开闭原则的重要途径,依赖倒

5、置原则没有实现,就不能 实现对扩展的开放,对修改关闭。4.接口隔离原则(ISP) 名词解释:一个类对另外一个类的依赖性应当是建立在最小的接口上,使用多个专门的接 口比使用单一的总接口要好。 简述接口隔离原则: 一个类对另外一个类的依赖性应当是建立在最小的接口上的。 一个借口代表一个角色,不应当将不同的角色都交给一个接口。 不应该强迫客户依赖于它们不用的方法。 作用:只提供调用者需要的方法,屏蔽不必要的方法;带来了设计的灵活性,并降低了整 个项目的风险,当业务变化是能够快速应付。5.迪米特法则(LoD) 名词解释:一个对象应当对其他对象尽可能少的了解。 作用:减少类之间的关系,降低类之间的耦合。

6、 体现迪米特法则的设计模式有两个:外观模式、中介者模式6.开闭原则(OCP) 名词解释:一个软件实体应当对扩展开放,对修改关闭。 优点: 提高复用性 提高可维护性 提高灵活性 易于测试 重要性:开闭原则是面向对象设计的终极目标,其他设计原则都可以看做是开闭原则的实 现方法。课后题:1、 里氏替换原则简称:LSP2、 关于单一职责原则描述错误的是:单一职责原则提高类之间的耦合性。(降低)3、 关于依赖倒置原则描述错误的是:依赖倒置原则中,高层模块不应该依赖低层模块,但低层模块依赖与高层模块。(都依赖于其抽象)4、 设计模式中的六个主要原则包括:单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原

7、则、迪米特法则和开闭原则。5、 在设计模式中,对迪米特法则进行应用的设计模式有外观模式和中介者模式第三章 创建型模式1.单例模式:一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 在Java中有两种表现形式:饿汉式单例类;懒汉式单例类。 功能上分为:状态单例类;无状态单例类。2.工厂方法模式:定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中3.抽象工厂模式:工厂方法的升级,为创建一组相关或相互依赖的对象提供一个接口,而 且无需指定他们的具体类。4. 建造者模式:将一个复杂对象的构建与其表示分离,使同样的构建过程创建出不同的表示5.原型模式:用原型实例指定创建对象的种类,并

8、通过复制这些原型创建新的对象。课后题:1、 不属于创建型模式的是:策略模式2、 关于单例模式说法错误的是:单例模式可以具有子类,并进行扩展。(单例模式无法创建子类,扩展困难)3、 关于工厂方法模式错误的是:工厂方法模式不可以与其他模式混合使用,不能进行扩展。(可以与其他模式混合使用)4、 关于抽象工厂模式说法正确的是:抽象工厂模式与工厂方法模式相似,也具有抽象工厂、具体工厂、抽象产品和具体产品4个角色;抽象工厂模式是工厂方法模式的进一步抽象,针对的是一族产品5、 简述建造者模式将一个复杂对象的构建与其表示分离,使得同样的构建过程,可以创建不同的表示。6、 简述原型模式用原型实例指定创建对象的原

9、型,创建新的对象第四章 结构型模式课后题:1、 属于结构型模式的是:代理模式、适配器模式、享元模式2、 关于装饰模式不正确的是:装饰模式只有构件和装饰这两个角色(抽象构件角色、具体构件角色、装饰角色、具体装饰角色)3、 关于适配器模式不正确的是:适配器模式简化了系统并提高系统的效率(对系统进行了扩展)4、 关于外观模式不正确的是:外观模式满足闭合原则(不满足)5、 简述桥梁模式和享元模式桥梁模式:将抽象和实现解耦,使得两者可以独立的变化享元模式:使用共享对象可有效的支持大量的细粒度的对象第五章 行为型模式(1)1、模板方法模式的优点: 封装不变的部分,扩展可变部分 提取公共部分代码,便于维护

10、行为由父类控制,子类实现。2、命令模式的优点: 类间解耦 可扩展性 命令模式结合其他模式会更优秀。3.责任链模式的优点: 将请求和处理分开 提高系统的灵活性。4策略模式的优点: 策略模式提供了管理相关的算法族的办法。 策略模式提供了可以替换继承关系的办法。 使用策略模式可以避免使用多重条件转移语句。5.迭代器模式的优点: 迭代器模式简化了访问容器元素的操作,具备一个统一的遍历接口。 封装遍历算法,使算法独立于聚集角色。课后题:1、 不属于行为模式的是:工厂方法模式2、 关于模板方法模式说法错误的是:模板方法模式破坏了开闭原则(符合开闭原则)3、 关于命令模式说法错误的是命令模式包括命令和执行命

11、令这两个角色(还有具体命令角色、接受者角色、调用者角色)命令模式提高类之间的耦合性(降低)4、 关于策略模式说法错误的是:策略模式只包括抽象策略和具体策略这两个角色(还有环境角色)5、 关于责任链模式说法错误的是:责任链模式是一种不经常使用的行为模式(常见)责任链模式提高了程序的性能且易于调试(降低性能,不易调试)6、 迭代器模式的4个角色分别是抽象迭代器、具体迭代器、抽象聚集和具体聚集。第六章 行为型模式(2)1. 中介者模式: 名词解释:用一个中介对象封装一系列对象的交互,中介者使各对象不需要显式地相互作 用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 适用场景:一个类依赖多个类

12、的情况下,但并不是只要有依赖关系就考虑使用中介者模式。 类图:Colleaguemediator:Mediatoraction()change()MediatorcolleagueChanged()ConcreteMediatorC1:ConcreteColleague1C2: ConcreteColleague2colleagueChanged()ConcreteColleague2action()ConcreteColleague1action()2. 观察者模式 名词解释:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖 于它的对象都会得到通知并被自动更新。 适用场景

13、: 关联行为场景 事件多级触发场景 跨系统的消息交互场景。 类图:<<interface>>ObserverUpdate()<<interface>>Subjectname attach()detach()notifyObservers()ConcreteObserverConcreteSubjectObservers():EnumerationChange()3. 备忘录模式 名词解释:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这 个状态,这样以后就可以将该对象回复到原先保存的状态。 适用场景: 需要保存和恢复数据的相关

14、状态场景 提供一个可回滚的操作c:需要监控副本的场景 数据库连接的事务管理使用 类图:ClientCaretakerMemento:MementogetMemento:Mement tosetMemento(Memento m)MementoState:StringgetState():StringsetState(String sta)OriginatorcreateMementor():mementorestoreMemento(Memento m)4. 访问者模式 名词解释:封装一些作用于某种数据结构中的各个元素的操作,它可以在不改变数据结构 的前提下定义作用于这些元素的新的操作。 使用

15、场景: 一个对象结构包含很多类对象,它们有不同接口,对象实施依赖于具体类的操作时即 使用迭代器模式也不能胜任的场景。 需要对一个对象结构中的对象进行很多不同并且不相关的操作,避免操作污染类。 业务规则要求遍历多个不同的对象。<<interface>>Visitorvisit(ConcreateElement elem) 类图:ClientObjectStructureConcreteVisitorElementaccept(Visitor v)ConcreateElement课后题:1、 关于中介者模式说法错误的是:中介者模式使对象间紧密耦合(松耦合)2、 关于备忘录模

16、式说法错误的是:备忘录模式可以保存对象的状态,但不能恢复数据。(能够恢复数据)3、 关于访问者模式说法错误的是:访问者模式包括访问者和被访问者两个角色(包括结构对象角色、抽象对象角色、具体访问者角色等)5、 状态模式的3个角色分别是抽象状态角色、具体状态角色和环境角色第七章 混合设计模式 课后题:1、 说法错误的是:工厂策略模式是抽象工厂模式和策略模式的混合使用模式(工厂方法模式)2、 命令链模式是命令模式和责任链模式的混合使用3、 工厂策略模式是工厂方法模式和策略模式的混合使用4、 观察中介者模式是观察者模式和中介者模式的混合使用5、 规格模式是策略模式和组合模式的扩展第八章 设计模式对比1

17、.创建型模式对比: 工厂方法模式:注重的是整体对象的创建方法; 建造者模式:注重部件构造的过程,旨在通过一步步精确构造,创建出一个复杂的对象; 抽象工厂模式:实现对产品家族的创建,不关心构造过程。 结构型模式对比: 装饰模式是代理模式的一个特殊应用,虽然他们都具有相同的接口,但装饰模式是对类的 功能进行加强或减弱,重点是类的功能变化,而代理模式着重代理过程的控制。 装饰模式和适配器模式都能对类进行“包装”,但装饰模式装饰的是同一家族,而适配器 模式可以修饰不同接口的对象,主要是将非本家族的对象伪装成同一家族的对象。 行为型模式对比: 策略模式是封装算法,认为算法是一个完整的、不可拆分的原子业务,其目的是让这些算 法

温馨提示

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

评论

0/150

提交评论