设计模式论文Word格式文档下载.docx

上传人:b****4 文档编号:6447324 上传时间:2023-05-06 格式:DOCX 页数:10 大小:18.99KB
下载 相关 举报
设计模式论文Word格式文档下载.docx_第1页
第1页 / 共10页
设计模式论文Word格式文档下载.docx_第2页
第2页 / 共10页
设计模式论文Word格式文档下载.docx_第3页
第3页 / 共10页
设计模式论文Word格式文档下载.docx_第4页
第4页 / 共10页
设计模式论文Word格式文档下载.docx_第5页
第5页 / 共10页
设计模式论文Word格式文档下载.docx_第6页
第6页 / 共10页
设计模式论文Word格式文档下载.docx_第7页
第7页 / 共10页
设计模式论文Word格式文档下载.docx_第8页
第8页 / 共10页
设计模式论文Word格式文档下载.docx_第9页
第9页 / 共10页
设计模式论文Word格式文档下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

设计模式论文Word格式文档下载.docx

《设计模式论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《设计模式论文Word格式文档下载.docx(10页珍藏版)》请在冰点文库上搜索。

设计模式论文Word格式文档下载.docx

主要效果包括使用模式对系统的灵活性、扩大性和复用性的影响。

1.3学习设计模式的重要性

一个好的设计系统往往是易维护、易扩展、易复用的,学习好设计模式对提高设计能力无疑是非常有帮助的。

设计模式的目的不是针对软件设计和开发中的每个问题都给出解决方案,而是针对某种特定环境中通常都会遇到的某种软件开发问题给出可用的一些解决方案,因此学习设计模式不仅可以使我们使用好这些成功的模式,更重要的是可以是我们更加深刻地理解面向对象的设计思想,非常有利于我们更好的使用面向对象语言解决设计中的问题。

1.4面向对象的特征

随着计算机硬件设备功能的进一步提高,使得基于对象的编程成为可能〔面向对象语言编写的程序需要消耗更多的内存,需要更快的CPU保证其运行速度〕。

基于对象的编程更加符合人的思维模式,使用面向对象语言可以编写易维护、易扩展和易复用的程序代码,更重要的是,面向对象编程鼓励创造性的程序设计。

1.4.1封装

面向对象编程的核心思想之一就是将数据核对数据的操作封装在一起。

通过抽象,即从具体的实例中抽取共同的性质形成一般的概念比方,类的概念。

1.4.2继承

继承是一种由已有的类定义出新类的机制。

利用继承,可以先定义一个共有属性的一般类,根据该一般类再定义具有特殊属性的子类,子类继承一般类的属性和行为,并根据需要增加他自己的心得属性和行为。

由继承而得到的类称为子类,被继承的类称为父类〔超类〕。

Java不支持多重继承,即子类只能有一个父类〔与C++不同〕。

1.4.3多态

多态是面向对象编程的又一种重要特征。

有两种意义的多态。

一种是操作名称的多态,即有多个操作具有一样的名字,但这些操作所承受的消息类型必须不同。

所谓操作名称的多态性,是指可以向操作传递不同的消息,以便让对象根据响应的消息来产生相应的行为。

另一种是和继承有关的多态,是指同一个操作被不同类型对象调用时可能产生不同的行为。

第二章面向对象的几个根本原那么

2.1面向抽象原那么

所谓面向对象编程,是指当设计一个类时,不让该类面向具体的类,而是面向抽象类或接口,即所设计类中的重要数据是抽象类或接口声明的变量,而不是具体类声明的变量。

2.2“开-闭〞原那么

所谓“开-闭〞原那么,就是让我们的设计对扩展开放,对修改关闭。

实际上这句话的本质是指当一个设计中增加新的模块时,不需要修改现有的模块。

在给出一个设计时,应当首先考虑到用户需求的变化,将应对用户变化的局部设计为对扩展开放,而设计的核心局部是经过精心考虑之后确定下来的根本构造,这局部应当是对修改关闭的,即不能因为用户的需求变化而再发生变化,因为这局部不是用来应对需求变化的。

如果一个设计遵守了“开-闭〞原那么,那么一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。

2.3“多用组合,少用继承〞原那么

在许多设计中,人们希望系统的类之间尽量使耦合关系,而不希望是强耦合关系。

设计的底层构造中通常会出现较多的继承构造,而许多应用层需要避开继承的缺点,而需要组合的优点。

要合理的使用组合,而不是使用继承来获得方法的复用,需要经过一定时间的认真思考、学习和编程实践。

2.4“高内聚-弱耦合〞原那么

如果类中的方法是一组相关的行为,那么称该类是高内聚的,反之称为低内聚。

高内聚便于类的维护,而低内聚不利于类的维护。

弱耦合就是尽量不要让一个类含有太多的其他类的实力的引用,以防止修改系统的其中一局部会影响到其他局部。

第三章设计模式分类

3.1行为型模式

行为型模式涉及怎样合理的设计对象之间的交互通信,以及怎样合理地为对象分配职责,让设计富有弹性、易维护、易复用。

(1)策略模式

(2)状态模式

(3)命令模式

(4)中介者模式

(5)责任链模式

(6)模板方法模式

(7)观察者模式

(8)访问者模式

3.2构造型模式

构造型模式涉及如何组合类和对象以形成更大的构造,和类有关的构造型模式设计如何合理点的使用继承机制,和对象有关的构造型模式涉及如何合理的使用对象机制。

(1)装饰模式

(2)组合模式

(3)适配器模式

(4)外观模式

(5)代理模式

(6)享元模式

(7)桥接模式

3.3创立型模式

创立型模式涉及对象的实例化,这类模式的特点是:

不让用户代码依赖于对象的创立或排列方式,防止用户直接使用new运算符创立对象。

(1)工厂方法模式

(2)抽象工厂模式

(3)生成器模式

(4)原型模式

(5)单间模式

3.4工厂模式情景举例

适合使用工厂方法模式的情景:

(1)用户需要一个类的子类的实例,但不希望该类的子类形成耦合。

(2)用户需要一个类的子类的实例,但用户不知道该类有哪些子类可用。

3.4.1设计要求

系统目前已经按照有关药品的规定设计一个抽象类Drug,该抽象类特别规定了所创立的药品必须给出药品的成分及含量。

Drug目前有两个子类:

Paracetamol和Amorolfine。

Paracetamol子类负责创立氨咖黄敏一类的药品;

Amorolfine子类负责创立盐酸阿莫罗芬一类的药品。

一个为某药品开发的应用程序需要使用Drug类的某个子类的实例为用户提供药品,但是药店的应用程序不能使用Drug的子类的构造方法直接创立对象,因为药店没有能力给出药品的各个成分的含量,只有药厂才有这样的能力。

请使用工厂方法模式伟已有系统编写一个抽象类,并在其中定义工厂方法,该工厂方法返回Drug类的子类的实例。

3.4.2设计实现

1.抽象产品

按照工厂方法模式,Drug类是工厂方法模式中的抽象产品角色,Drug类代码:

Drug.java

publicabstractclassDrug{

Stringconstitute;

Stringname;

publicStringgetName(){

returnname;

}

publicStringgetConstitute(){

returnconstitute;

}

2.具体产品

按照工厂方法模式,Paracetamol类和Amorolfine类是产品角色,Drug类代码:

Paracetamol.java

publicclassParacetamolextendsDrug{

Stringpart1="

每粒含乙酰氨基酚"

;

Stringpart2="

每粒含咖啡因"

Stringpart3="

每粒含人工牛黄"

Stringpart4="

每粒含马来酸氯苯"

publicParacetamol(Stringname,int[]a){

this.name=name;

part1=part+"

:

"

+a[0]+"

毫克\n"

part2=part+"

+a[1]+"

part3=part+"

+a[2]+"

part4=part+"

+a[3]+"

constitute=part1+part2+part3+part4;

Amorolfine.java

publicclassAmorolfineextendsDrug{

每粒含甲硝唑"

publicAmorolfine(Stringname,int[]a){

constitute=part1+part2;

3.构造者

按照工厂方法模式,我们编写了担当构造者角色的接口:

DrugCreator,代码如下:

DrugCreator.java

pulicinterfaceDrugCreator{

publicabstractDruggetDrug();

//工厂方法

4.具体构造者

按照工厂方法模式,ParaDrugCreator类和AmorDrugCreator类是两个具体构造者角色,代码如下:

ParaDrugCreator.java

publicclassParaDrugCreatorimplementsDrugCreator{

publicDruggetDrug(){

int[]a={250,15,1,10};

Drugdrug=newParacetamol("

氨加黄敏胶囊"

a);

returndrug;

AmorDrugCreator.java

publicclassAmorDrugCreatorimplementsDrugCreator{

int[]a={250,5};

Drugdrug=newAmorolfine("

甲硝唑胶囊"

5.应用程序

应用程序Appletcation.java使用了上述工厂模式中所涉及的抽象产品、构建者以及具体构造者,即使用具体构造者为用户提供药品。

Appletcation.java

importjava.util.*;

publicclassAppletcation{

publicstaticvoidmain(Stringargs[]){

DrugCreaorcreator=newParaDrugCreator();

Drugdrug=creator.getDrug();

System.out.println(drug.getName()+"

的成分:

);

System.out.println(drug.getConstitute());

creator=newAmorDrugCreator();

drug=creator.getDrug();

运行结果:

氨加黄敏胶囊的成分:

每粒含乙酰氨基酚:

250毫克

每粒含咖啡因:

15毫克

每粒含人工牛黄:

1毫克

每粒含马来酸氯苯:

10毫克

甲硝唑胶囊的成分:

每粒含甲硝唑:

200毫克

5毫克

第四章设计模式学习总结

目前,面向对象程序设计已经成为软件设计开发领域的主流,而学习使用设计模式无疑非常有助于软件开发人员使用面向对象语言开发出易维护、易扩展、易复用的代码,其原因是设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案,已被成功应用与许多系统的设计中。

同时感觉自己在学习设计模式中有很多的缺乏,理论不太熟悉,不能熟练运用于程序中,在以后的学习过程中要更加努力,到达熟练运用。

致谢

在完成这篇论文的过程中,主要参考了课本的知识,也在网上查询了相关知识。

在此过程中,让我认识到了自身的缺乏,相关的知识的缺乏。

同时,感谢身边同学的帮助,以及教师的指导。

在以后的学习中,我会更加努力,完善自己在设计模式学习中的知识,提高能力。

参考文献

【1】耿祥义张跃平著.面向对象与设计模式:

清华大学出版社,2013.6

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2