ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:18.97KB ,
资源ID:23769933      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23769933.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(设计模式论文.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

设计模式论文.docx

1、设计模式论文第一章 设计模式的简介1.1什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计面向对象软件比较困难,而设计可复用的面向对象软件就更加困难,你必须先找出有关的对象,以适当的粒度将他们归类,在定义的接口和继承类,建立对象之间的相互关系。你的设计应该对手头的问题有针对性,同时对将来的问题有足够的通用性。设计出尽可能少的重复设计模式。有经验的面向对象设计者能做出良好的设计,二新手则面对众多项选择择无从下手。设计模式使人们可以更加简单方便地复用成

2、功的设计和体系结构。1.2 设计模式的基本要素记录一个设计模式需要4个基本要素:(1)名称:一个模式的名称高度包括该模式的本质,有利于该行业统一术语、便于交流使用。(2)问题:描述应该在何时使用模式,解释设计问题和问题存在的前因后果,描述在怎样的环境下使用该模式。(3)方案:描述设计的组成部分、他们之间的相互关系与各自的职责和协作方式。(4)效果:描述模式的应用效果与使用模式应该权衡的问题。主要效果包括使用模式对系统的灵活性、扩充性和复用性的影响。1.3学习设计模式的重要性 一个好的设计系统往往是易维护、易扩展、易复用的,学习好设计模式对提高设计能力无疑是非常有帮助的。 设计模式的目的不是针对

3、软件设计和开发中的每个问题都给出解决方案,而是针对某种特定环境常都会遇到的某种软件开发问题给出可用的一些解决方案,因此学习设计模式不仅可以使我们使用好这些成功的模式,更重要的是可以是我们更加深刻地理解面向对象的设计思想,非常有利于我们更好的使用面向对象语言解决设计中的问题。1.4面向对象的特征 随着计算机硬件设备功能的进一步提高,使得基于对象的编程成为可能(面向对象语言编写的程序需要消耗更多的存,需要更快的CPU保证其运行速度)。基于对象的编程更加符合人的思维模式,使用面向对象语言可以编写易维护、易扩展和易复用的程序代码,更重要的是,面向对象编程鼓励创造性的程序设计。1.4.1 封装 面向对象

4、编程的核心思想之一就是将数据核对数据的操作封装在一起。通过抽象,即从具体的实例中抽取共同的性质形成一般的概念比如,类的概念。1.4.2 继承 继承是一种由已有的类定义出新类的机制。利用继承,可以先定义一个共有属性的一般类,根据该一般类再定义具有特殊属性的子类,子类继承一般类的属性和行为,并根据需要增加他自己的心得属性和行为。 由继承而得到的类称为子类,被继承的类称为父类(超类)。Java不支持多重继承,即子类只能有一个父类(与C+不同)。1.4.3 多态 多态是面向对象编程的又一种重要特征。有两种意义的多态。一种是操作名称的多态,即有多个操作具有相同的名字,但这些操作所承受的消息类型必须不同。

5、所谓操作名称的多态性,是指可以向操作传递不同的消息,以便让对象根据响应的消息来产生相应的行为。另一种是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。第二章 面向对象的几个基本原则2.1面向抽象原则 所谓面向对象编程,是指当设计一个类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计类中的重要数据是抽象类或接口声明的变量,而不是具体类声明的变量。2.2“开-闭”原则 所谓“开-闭”原则,就是让我们的设计对扩展开放,对修改关闭。实际上这句话的本质是指当一个设计中增加新的模块时,不需要修改现有的模块。在给出一个设计时,应当首先考虑到用户需求的变化,将应对用户变化的部分

6、设计为对扩展开放,而设计的核心部分是经过精心考虑之后确定下来的基本结构,这部分应当是对修改关闭的,即不能因为用户的需求变化而再发生变化,因为这部分不是用来应对需求变化的。如果一个设计遵守了“开-闭”原则,那么一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。2.3“多用组合,少用继承”原则 在许多设计中,人们希望系统的类之间尽量使耦合关系,而不希望是强耦合关系。设计的底层结构常会出现较多的继承结构,而许多应用层需要避开继承的缺点,而需要组合的优点。要合理的使用组合,而不是使用继承来获得方法的复用,需要经过一定时间的认真思考、学习和编程实践。2.4“高聚-弱耦合”原则 如果

7、类中的方法是一组相关的行为,则称该类是高聚的,反之称为低聚。高聚便于类的维护,而低聚不利于类的维护。弱耦合就是尽量不要让一个类含有太多的其他类的实力的引用,以避免修改系统的其中一部分会影响到其他部分。第三章 设计模式分类3.1行为型模式行为型模式涉与怎样合理的设计对象之间的交互通信,以与怎样合理地为对象分配职责,让设计富有弹性、易维护、易复用。(1)策略模式(2)状态模式(3)命令模式(4)中介者模式(5)责任链模式(6)模板方法模式(7)观察者模式(8)访问者模式3.2结构型模式结构型模式涉与如何组合类和对象以形成更大的结构,和类有关的结构型模式设计如何合理点的使用继承机制,和对象有关的结构

8、型模式涉与如何合理的使用对象机制。(1)装饰模式(2)组合模式(3)适配器模式(4)外观模式(5)代理模式(6)享元模式(7)桥接模式3.3创建型模式创建型模式涉与对象的实例化,这类模式的特点是:不让用户代码依赖于对象的创建或排列方式,避免用户直接使用new运算符创建对象。(1)工厂方法模式(2)抽象工厂模式(3)生成器模式(4)原型模式(5)单间模式3.4 工厂模式情景举例适合使用工厂方法模式的情景:(1)用户需要一个类的子类的实例,但不希望该类的子类形成耦合。(2)用户需要一个类的子类的实例,但用户不知道该类有哪些子类可用。3.4.1 设计要求系统目前已经按照有关药品的规定设计一个抽象类D

9、rug,该抽象类特别规定了所创建的药品必须给出药品的成分与含量。Drug目前有两个子类:Paracetamol和Amorolfine。Paracetamol子类负责创建氨咖黄敏一类的药品;Amorolfine子类负责创建盐酸阿莫罗芬一类的药品。一个为某药品开发的应用程序需要使用Drug类的某个子类的实例为用户提供药品,但是药店的应用程序不能使用Drug的子类的构造方法直接创建对象,因为药店没有能力给出药品的各个成分的含量,只有药厂才有这样的能力。请使用工厂方法模式伟已有系统编写一个抽象类,并在其中定义工厂方法,该工厂方法返回Drug类的子类的实例。3.4.2 设计实现1. 抽象产品按照工厂方法

10、模式,Drug类是工厂方法模式中的抽象产品角色,Drug类代码:Drug.javapublic abstract class Drug String constitute; String name; public String getName() return name; public String getConstitute() return constitute; 2. 具体产品按照工厂方法模式,Paracetamol类和Amorolfine类是产品角色,Drug类代码:Paracetamol.javapublic class Paracetamol extends Drug String

11、 part1=每粒含乙酰氨基酚; String part2=每粒含咖啡因; String part3=每粒含人工牛黄; String part4=每粒含马来酸氯苯; public Paracetamol(String name,int a) this.name=name; part1=part+:+a0+毫克n; part2=part+:+a1+毫克n; part3=part+:+a2+毫克n; part4=part+:+a3+毫克n; constitute=part1+part2+part3+part4; Amorolfine.javapublic class Amorolfine exte

12、nds Drug String part1=每粒含甲硝唑; String part2=每粒含人工牛黄; public Amorolfine(String name,int a) this.name=name; part1=part+:+a0+毫克n; part2=part+:+a1+毫克n; constitute=part1+part2; 3. 构造者按照工厂方法模式,我们编写了担当构造者角色的接口:DrugCreator,代码如下:DrugCreator.javapulic interface DrugCreator public abstract Drug getDrug();/工厂方法4

13、. 具体构造者按照工厂方法模式,ParaDrugCreator类和AmorDrugCreator类是两个具体构造者角色,代码如下:ParaDrugCreator.javapublic class ParaDrugCreator implements DrugCreator public Drug getDrug() int a=250,15,1,10; Drug drug=new Paracetamol(氨加黄敏胶囊,a); return drug; AmorDrugCreator.javapublic class AmorDrugCreator implements DrugCreator

14、public Drug getDrug() int a=250,5; Drug drug=new Amorolfine(甲硝唑胶囊,a); return drug; 5. 应用程序应用程序Appletcation.java使用了上述工厂模式中所涉与的抽象产品、构建者以与具体构造者,即使用具体构造者为用户提供药品。Appletcation.javaimport java.util.*; public class Appletcation public static void main(String args) DrugCreaor creator=new ParaDrugCreator(); D

15、rug drug=creator.getDrug(); System.out.println(drug.getName()+的成分:); System.out.println(drug.getConstitute(); creator=new AmorDrugCreator(); drug=creator.getDrug(); System.out.println(drug.getName()+的成分:); System.out.println(drug.getConstitute(); 运行结果:氨加黄敏胶囊的成分:每粒含乙酰氨基酚:250毫克每粒含咖啡因:15毫克每粒含人工牛黄:1毫克每粒

16、含马来酸氯苯:10毫克甲硝唑胶囊的成分:每粒含甲硝唑:200毫克每粒含人工牛黄:5毫克第四章 设计模式学习总结目前,面向对象程序设计已经成为软件设计开发领域的主流,而学习使用设计模式无疑非常有助于软件开发人员使用面向对象语言开发出易维护、易扩展、易复用的代码,其原因是设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案,已被成功应用与许多系统的设计中。同时感觉自己在学习设计模式中有很多的不足,理论不太熟悉,不能熟练运用于程序中,在以后的学习过程中要更加努力,达到熟练运用。致在完成这篇论文的过程中,主要参考了课本的知识,也在网上查询了相关知识。在此过程中,让我认识到了自身的不足,相关的知识的缺乏。同时,感身边同学的帮助,以与老师的指导。在以后的学习中,我会更加努力,完善自己在设计模式学习中的知识,提高能力。参考文献1 耿祥义 跃平 著.面向对象与设计模式 :清华大学,2013.6

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1