logo资料库

Java设计模式学期论文.pdf

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
第1章面向对象思想
1.1面向对象思想的背景
1.2面向对象的特征
第2章设计模式的原则
2.1面向对象思想的背景
2.1.1面向对象的基本概念
2.2设计模式的原则
2.2.1"开-闭"原则
2.2.2可变性的封闭原则
2.2.3里氏代换原则
2.2.4依赖倒转原则
2.2.5迪米特法则
2.2.6接口隔离法则
第3章印象深刻的模式
3.1创建型模式
3.1.1抽象工厂模式
3.1.2抽象工厂模式的结构
3.1.3抽象工厂模式的UML类图
3.1.4抽象工厂模式优点
3.1.5适合使用抽象工厂模式的情景
3.1.6抽象工厂模式的应用
3.2行为型模式
3.2.1命令模式
3.2.2命令模式的结构
3.2.3命令模式的UML类图
3.2.4命令模式优点
3.2.5适合使用命令模式的情景
3.2.6命令模式的应用
3.3结构型模式
3.3.1适配器模式
3.3.2适配器模式的结构
3.3.3适配器模式的UML类图
3.3.4适配器的适配程序
3.3.5适配器模式优点
3.3.6适合使用适配器模式的情景
3.3.7适配器模式的应用
总结与展望
4.1总结
4.2展望
参考文献
致谢
LUOYANG NORMAL UNIVERSITY 2010-2011-2 课程考查论文 设计模式之我见 院 ( 系 ) 名 称 信息技术学院 专 业 名 称 软件工程 2008 级 软件工程专升本 2010 级 学 生 姓 名 张磊 学 号 101162047 任 课 教 师 宋 振 方 完 成 时 间 2011 年 06 月
设计模式课程 目录 第 1 章 面向对象思想.......................................................................................................... 1 1.1 面向对象思想的背景.................................................................................................1 1.2 面向对象的特征.........................................................................................................1 第 2 章 设计模式的原则...................................................................................................... 3 2.1 面向对象思想的背景.................................................................................................3 2.1.1 面向对象的基本概念......................................................................................... 3 2.2 设计模式的原则............................................................................................................ 4 2.2.1 "开-闭"原则....................................................................................................... 4 2.2.2 可变性的封闭原则........................................................................................... 4 2.2.3 里氏代换原则................................................................................................... 4 2.2.4 依赖倒转原则................................................................................................... 4 2.2.5 迪米特法则.......................................................................................................... 5 2.2.6 接口隔离法则................................................................................................... 5 第 3 章 印象深刻的模式...................................................................................................... 6 3.1 创建型模式.................................................................................................................6 3.1.1 抽象工厂模式..................................................................................................... 6 3.1.2 抽象工厂模式的结构......................................................................................... 6 3.1.3 抽象工厂模式的 UML 类图................................................................................. 7 3.1.4 抽象工厂模式优点............................................................................................. 7 3.1.5 适合使用抽象工厂模式的情景......................................................................... 7 3.1.6 抽象工厂模式的应用......................................................................................... 7 3.2 行为型模式...............................................................................................................11 3.2.1 命令模式........................................................................................................... 11 3.2.2 命令模式的结构............................................................................................... 11 3.2.3 命令模式的 UML 类图....................................................................................... 12 3.2.4 命令模式优点................................................................................................... 12 3.2.5 适合使用命令模式的情景............................................................................... 12 3.2.6 命令模式的应用............................................................................................... 12 3.3 结构型模式.............................................................................................................14 3.3.1 适配器模式....................................................................................................... 14 3.3.2 适配器模式的结构........................................................................................... 15 3.3.3 适配器模式的 UML 类图................................................................................... 15 3.3.4 适配器的适配程序........................................................................................... 15 3.3.5 适配器模式优点............................................................................................... 15 3.3.6 适合使用适配器模式的情景........................................................................... 16 I
洛阳师范学院 2011 届本科生毕业设计 3.3.7 适配器模式的应用........................................................................................... 16 总结与展望.......................................................................................................................... 18 4.1 总结...........................................................................................................................18 4.2 展望...........................................................................................................................18 参考文献.............................................................................................................................. 19 致 谢.................................................................................................................................. 20 II
设计模式之我见 第 1 章 面向对象思想 1.1 面向对象思想的背景 早期计算机中运行的程序大都是为特定的硬件系统专门设计的,称为面向机器的程 序。这类程序运行速度和效率都很高,但是可读性和可移植性都很差,随着软件开发规模 的扩大,这类面向机器的程序逐渐被以 C 为代表的面向过程的程序所取代。 面向过程问题求解的核心组成是数据结构和算法。数据结构利用计算机的离散逻辑 来量化表达需要解决的问题,而算法则研究如何快捷、高效地组织解决问题的具体过程。 面向过程的程序设计是以具体的解决问题过程为研究和实现的主体,可以精确完备地描述 具体的求解过程,但却不足以把一个包含了多个相互关联的过程的复杂系统表达清楚。 面积对象的程序设计不仅关心孤立的单个过程,还关心包含这些过程的复杂系统, 它能够使计算机逻辑来模拟描述系统本身,包括系统的组成、系统的各种可能状态,以及 系统中可能产生和各种过程与过程引起的系统状态切换。 1.2 面向对象的特征 面向对象的特征有四点,分别如下: 1、对象唯一性 每个对象都有自身唯一的标识,通过这种标识,可找到相应对象。在对象的 整个生命期中,它的标识都不改变,不同的对象不能有相同的标识。 2、抽象性 分类性是指将具有一致的数据结构和行为的对象抽象成类。一个类就这样和种 抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划 分都是主观的,但必须与具体的应用有关。 3、继承性 继承性子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。 在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来时行,把这 个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 继承性是面积对象程序设计语言不同于其它语言的最重要的特点,是其他语言 所没有的。在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继 承。在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。在 软件开发中,类的继承性使所建立的软件具有开放性、可扩充性,这是信息组织 与分类的行之有效的方法,它简化了对象、类的创建工作量,增加了代码的可重 性。采用继承性,提供了类的规范的等级结构。通过类的继承关系,使公共的特 性能够共享,提高了软件的重用性。 4、多态性 多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同 的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。 多态性允许每个对象以适合自身的方式去响应共同的消息,增强了软件的灵 1
活性重用性。 洛阳师范学院 2011 届本科生毕业设计 第 2 章 设计模式的原则 2.1 面向对象思想的背景 早期计算机中运行的程序大都是为特定的硬件系统专门设计的,称为面向机器 的程序。这类程序运行速度和效率都很高,但是可读性和可移植性都很差,随着软 件开发规模的扩大,这类面向机器的程序逐渐被以 C 为代表的面向过程的程序所取 代。 面向过程问题求解的核心组成是数据结构和算法。数据结构利用计算机的离散 逻辑来量化表达需要解决的问题,而算法则研究如何快捷、高效地组织解决问题的 具体过程。面向过程的程序设计是以具体的解决问题过程为研究和实现的主体,可 以精确完备地描述具体的求解过程,但却不足以把一个包含了多个相互关联的过程 的复杂系统表达清楚。面积对象的程序设计不仅关心孤立的单个过程,还关心包含 这些过程的复杂系统,它能够使计算机逻辑来模拟描述系统本身,包括系统的组成、 系统的各种可能状态,以及系统中可能产生和各种过程与过程引起的系统状态切换。 2.1.1 面向对象的基本概念 1、类与对象 类是一种复杂的数据类型,它是将数据和与数据相关的操作封装在一起的 集合体。类是普通数据类型的扩展,它不但包含数据,还包含对数据进行操作 的方法。方法反映的是数据的行为而不是数据本身。 对象是类的实例,它是类的变量。当程序运行时,对象占用内存单元。对 象与类是密切相关的,没有脱离对象的类,也没有不依赖于类的对象。 2、成员 在 Java 语言中,一切事物都是对象。实际上对于每个对象都有一个抽象 过程。所谓抽象,就是选取描述事物在现实世界中相关特征的过程。任何事物 一定存在三类信息: 属性信息:静态刻画对象特征。 操作信息:动态刻画对象特征。 约束信息:描述对象可以存在的状态。 为了使得计算机能够处理客观事物,必须对事物进行抽象。在事物抽象过 程中,必须忽略那些抽象事物与当前目的无关的特征,只需要关注与当前需求 有直接影响的因素。 3、类的核心特征 封装、继承和多态是类的三个核心特性。 封装即信息的隐藏,是面向对象程序设计中一个非常重要的概念。封装的 目的是:隐藏类的实现细节,以防别人误用;迫使用户通过接口去访问数据; 增强代码的可维护性。 继承机制提供了一种无限重复利用程序资源的径。通过继承可以扩充旧的 2
程序以适应新的需求,这样不仅节省程序开发时间,而且为未来程序设计增添 设计模式之我见 了新资源。 多态就是多种形态的意思,是指一个程序中使用相同名字定义了不同的方 法。多态性允许以统一的风格处理已存在的变量及相关的类。多态性使得向系 统增加新功能变得容易。 继承性和多态性降低软件复杂性的有效技术。 2.2 设计模式的原则 2.2.1 "开-闭"原则 开-闭原则(Open-closed principle 缩写 OCP),是设计模式的核心原则, 一切的一切都是围绕着“开-闭”原则展开的。 意思是,在一个系统中,对于扩展是开放的,对于修改是关闭的,一个好的系统 是在不修改源代码的情况下 ,可以扩展你的功能..而实现开闭原则的关键就是抽 象化。 在"开-闭"原则中,不允许修改的是抽象的类或者接口,允许扩展的是具体的 实现类,抽象类和接口在"开-闭"原则中扮演着极其重要的角色..即要预知可能变 化的需求.又预见所有可能已知的扩展..所以在这里"抽象化"是关键! 2.2.2 可变性的封闭原则 找到系统的可变因素,将它封装起来..这是对"开-闭"原则最好的实现..不要 把你的可变因素放在多个类中,或者散落在程序的各个角落..你应该将可变的因 素,封套起来,并且切忌不要把所用的可变因素封套在一起,最好的解决办法是, 分块封套你的可变因素,避免超大类,超长类,超长方法的出现!!给你的程序增加 艺术气息,将程序艺术化是我们的目标。 2.2.3 里氏代换原则 任何基类可以出现的地方,子类也可以出现..如果你通读过, 我想你应该明白这个原则,在书中,Bruce Eckel 大师用了大量的章节来讲解"向上 转型"和"向下转型",我想目的很清楚,不仅是要你明白类的型别,更重要的是要你 明白父类与子类的关系。 2.2.4 依赖倒转原则 要依赖抽象,而不要依赖具体的实现..如果说开闭原则是目标,依赖倒转原则 是到达"开闭"原则的手段..如果要达到最好的"开闭"原则,就要尽量的遵守依赖 倒转原则。可以说依赖倒转原则是对"抽象化"的最好规范!依赖倒转原则也是里氏 代换原则的补充。你理解了里氏代换原则 ,再来理解依赖倒转原则应该是很容易 的。 合成/聚合原则:要尽量使用合成/聚合原则,而不是继承关系达到软件复用的 目的。此原则和里氏代换原则氏相辅相成的,两者都是具体实现"开-闭"原则的规 范。违反这一原则:就无法实现"开-闭"原则。先来看看什么是合成,什么是聚合。 3
洛阳师范学院 2011 届本科生毕业设计 什么是合成? 合成:是指一个整体对依托他而存在的关系,例如:一个人对他的房子和家具, 其中他的房子和家具是不能被共享的,因为那些东西都是他自己的。并且人没了, 这个也关系就没了。这个例子就好像,乌鸡百凤丸这个产品,它是有乌鸡和上等药 材合成而来的一样。也比如网络游戏中的武器装备合成一样,多种东西合并为一种 超强的东西一样。 什么是聚合? 聚合:聚合是比合成关系的一种更强的依赖关系,聚合是一个整体对个体的部 分,例如,一个奔驰 S360 汽车,对奔驰 S360 引擎,奔驰 S360 轮胎的关系..这些关系 就是带有聚合性质的..因为奔驰 S360 引擎和奔驰 S360 轮胎他们只能被奔驰 S360 汽车所用,离开了奔驰 S360 汽车,它们就失去了存在的意义。在我们的设计中,这 样的关系不应该频繁出现..这样会增大设计的耦合度。 明白了合成和聚合关系,再来理解合成/聚合原则应该就清楚了..要避免在系 统设计中出现,一个类的继承层次超过 3 次。如果这样的话,可以考虑重构你的代 码,或者重新设计结构..当然最好的办法就是考虑使用合成/聚合原则。 2.2.5 迪米特法则 系统中的类,尽量不要与其他类互相作用,减少类之间的耦合度,因为在你的 系统中,扩展的时候,你可能需要修改这些类,而类与类之间的关系,决定了修改的 复杂度,相互作用越多,则修改难度就越大,反之,如果相互作用的越小,则修改起 来的难度就越小..例如 A 类依赖 B 类,则 B 类依赖 C 类,当你在修改 A 类的时候,你 要考虑 B 类是否会受到影响,而 B 类的影响是否又会影响到 C 类..如果此时 C 类再 依赖 D 类的话,呵呵,我想这样的修改有的受了。 2.2.6 接口隔离法则 这个法则与迪米特法则是相通的,迪米特法则是目的,而接口隔离法则是对迪 米特法则的规范..为了做到尽可能小的耦合性,我们需要使用接口来规范类,用接 口来约束类.要达到迪米特法则的要求,最好就是实现接口隔离法则,实现接口隔 离法则,你也就满足了迪米特法则。 第 3 章 印象深刻的模式 3.1 创建型模式 创建型模式涉及对象的实例化,这类模式的特点是,不让用户代码依赖于对象 的创建或排列方式,避免用户直接使用 new 运算创建对象。该模式包括工厂方法模 式、抽象工厂模式、生成器模式、原型模式、单件模式。 3.1.1 抽象工厂模式 4
分享到:
收藏