2022年软件开发中设计模式的理解与认识 .pdf

上传人:Q****o 文档编号:26742320 上传时间:2022-07-19 格式:PDF 页数:4 大小:41.19KB
返回 下载 相关 举报
2022年软件开发中设计模式的理解与认识 .pdf_第1页
第1页 / 共4页
2022年软件开发中设计模式的理解与认识 .pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《2022年软件开发中设计模式的理解与认识 .pdf》由会员分享,可在线阅读,更多相关《2022年软件开发中设计模式的理解与认识 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件设计之工厂模式设计摘要:在面向对象编程中, 设计模式并不是一种具体的技术,是从经验中总结出来解决某一类问题的方法论。 介绍了 4 人组提出的设计模式及其分类, 主要集中工厂模式相关的 3 个设计模式:简单工厂模式、工厂方法模式、抽象工厂模式,做了分析比较, 对工厂模式在一定领域上的运用,介绍了反射机制和工厂模式之间的关系。一、引言学习了面向对象分析设计编程思想,开始考虑通过封装、 继承、多态把程序的耦合度降低,开始用设计模式使得程序更加的灵活,容易修改,并且易于复用。设计模式使人们可以更加简单方便地复用成功的设计和体系结构。将已证实的技术表述成设计模式也会使新系统开发者更加容易理解其设计思

2、路。设计模式帮助你做出有利于系统复用的选择,避免设计损害了系统复用性。实际上,设计模式并不只是一种具体“技术”, 它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧,让你能够真正掌握接口或抽象类的应用,从而在原来的语言基础上跃进一步,更重要的是,的设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。二、设计模式概述自软件工程概念和模块化程序设计思想提出以来,在一定程度上解决了较复杂软件开发的速度问题和质量问题,但是在需求与设计之间仍存在一定的差距,从而很难有效地把需求转化为相应的设计。由此产生了软件设计模式概念, 它的提出较好地解决了软件需求与设计之间的问题。设计模式

3、就是解决某个特定的面向对象软件问题的特定方法具体来说,设计模式针对面向对象系统中重复出现的设计问题,提出一个通用设计方案, 并予以系统化的命名和动机解释, 它描述了问题解决方案在什么条件下使用该解决方案及其效果, 它还给出了实现要点和实例, 解决方案是解决问题的一组精心安排的通用的类和对象,经过定制和实现就可以用来解决特定环境中的问题。根据设计模式所解决的问题,一般将其分为三种类型:(1) 创建类型:创建类型的模式都是用于创建类的实例但是和通过 new 来创建实例不同, 这些模式提供了更加灵活的方式,程序能够根据特定的情况创建特定的类。(2)结构类型:结构类型的模式将类和对象组合起来,以构成更

4、加复杂的结构。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - (3)行为类型:行为类型的模式帮助开发人员控制类之间的通讯。三、工厂模式设计工厂模式系中有 3 种不同的模式,分别是简单工厂模式 ( 又名静态工厂方法),工厂方法模式以及抽象工厂模式。其中工厂方法和抽象工厂模式是四人组设计模式中的两个不同的模式,而简单工厂模式是它们的简化特例。3.1 简单工厂模式工厂模式是我们在面向对象编程中经常看见的模式。工厂模式是通过传递参数从一

5、组可能的类中其中一个产生实例。通常它返回的类都具有共同的父类和共同的方法,但是每个类执行的任务不同。 工厂方法模式中的一个特例是简单工厂模式,它是工厂方法模式和抽象工厂方法的简化。简单工厂模式由3 个角色组成:简单工厂类,它是简单工厂的核心部分, 包含一些必要的判断。 抽象产品类,它是具体产品类的抽象父类或简单工厂的访问接口。简单工厂模式实现起来简单, 并且能使客户端不用直接生成产品,从创建产品的责任中解脱出来, 而对产品类部分而言, 可以对抽象产品进扩充而不用对以前的抽象类和具体类进行修改,符合了开闭原则。简单工厂模式的缺点,简单工厂类负责了创建产品的逻辑,当对产品进行扩充时,需要对简单工厂

6、类进行修改,重新编译程序。 如果这个类不能完成工作的话,整个程序都会受到影响。3.2 工厂方法模式根据上述,我们可以对简单工厂模式进行改进,对工厂类进行抽象, 形成了工厂方法模式。工厂方法模式是一种更灵活的模式, 它扩展了子类实例化的思想,即不再由单个工厂类决定到底应该实例化哪个子类。而将这一决定推迟到每个子类中完成。这种模式编写的程序定义了一个抽象类或接口,虽然它负责创建对象( 定义了创建的方法 ) ,但是应该创建哪个对象将由子类来决定。当一个类不知道它所须创建的对象类的时候,或者当一个类希望由它的子类来指定它所创建的对象的时候,或者当类将创建对象的职责委托给多个帮助子类中某个的时候可以使工

7、厂方法模式,它对比简单工厂把工厂类分成了具体工厂和抽象工厂, 工厂方法不再将与选定应用有关的类绑定。增加一个具体产品时, 不必对抽象工厂或工厂接口进行修改。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 3.3 抽象工厂模式当我们增加一个产品时, 我们需要在程序中增加一个产品类并增加一个相应的产品工厂类, 而当我需要增加一类产品时,我们需要运用别一种工厂模式,抽象工厂模式。 抽象工厂模式是比工厂方法模式更抽象的一种模式。使用这种

8、模式可以返回多个相关对象类中的一个。抽象工厂模式的角色和工厂方法的角色相似,不同的是抽象工厂中的可以根据不同的产品类型产生不同类的产品。多个抽象产品类, 每个抽象产品类可以派生出多个具体产品类。 一个抽象工厂类, 可以派生出多个具体工厂类。 每个具体工厂类可以创建多个具体产品类的实例。当一个系统要独立于它的产品的创建,组合和表示时,或者要由多个产品系统列中的一个来配置时,或者当你要强调系统相关的产品对象的设计时可以运用抽象工厂方法。抽象工厂模式和工厂方法模式一样,将客户与类的实现分离,客户通过它们的抽象接口操纵实例,客户不必关心具体类的生成,实现了高内聚,低耦合。和工厂方法模式不同的是, 它使

9、得易于交换产品系。 一个应用只需要在初始化的时候确定,只具体工厂就可以设置不同的产品系统。抽象工厂模式的缺点是增加具体类比较困难,抽象工厂或工厂接口已经确定了可以产生的产品系列,如何要扩展也需要扩展应抽象类及其子类。3.4 反射机制与工厂模式Java 反射机制,反射用于Java 身上指的是我们可以于运行时加载,探知,使用编译期间完全未知的类。 反射可以用于工厂模式中改进工厂模式。在简单工厂模式中,如果增加不同的产品需要在修改工厂的逻辑,如果利用 Java 中的反射机制,就可以动态地选择要实例化的类的,无需要对工厂类进行重新编译,增加产品只需要继承抽象产品的接口。同样,在工厂方法创建实例中, 也

10、可以运用反射机制使具体工厂对象和客户端之间降低耦合。四、工厂模式和其它模式的关系各种模式关系除了可按上述分成创建型,结构型,行为型三类。 于类还是用于对象,可将其分为类模式和对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立, 是静态的, 在编译时便确定下来了; 对象模式处理对象间的关系,这些关系在运行时是可以变化的,更具动态性。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 设计模式存在着紧密或相对差别比较大的关系。

11、通过学习,比较,联想,我们可以更好的理解, 掌握和运用各种模式。 单例模式了中的静态方法是静态工厂方法, 单例模式可以算是一种表态工厂模式,单例类自己是工厂角色,也是产品角色。工厂方法模式是模板方法的一种应用,上述中工厂方法模式中工厂部分中的CreateProduct 就是模板方法。 工厂访求模式中的角色具体工厂可以用单例模式实现。在 java 类库中,很多工厂模式都结合应用了单例模式。工厂方法模式中的具体产品角色有时可以用组件模式实现。还有如上述Java 类库中的迭代器例子。在迭代器产生实例时,可以用到工厂方法模式。同工厂方法模式一样,具体工厂可以用单例模式实现,具体产品也可以用组件模式实现

12、。五、结束语设计模式已经成为面向对象设计的重要内容,设计模式也为面向对象编程做出重要指导,很大程序地提高了可重用性和可理解性。从长远来看, 由于越来越多的模式被开发和总结出来,所有依赖于人工判断的传统模式选择方法都可能成为模式使用的障碍。近年来已经出现了对设计模式形式化描述方法的研究, 这些方法通过对设计模式进行形式化描述,为用户进行模式选择提供比较准确的数据。 同时模式的自动获取方法也已经提出,这些模式选择方法将是模式选择的趋势。通过设计模式的理解, 体会,我们也可以在今后的从更高更透彻地认识面向对象编程的精髓。参考文献1阎宏. Java 与模式 M. 电子工业出版社 . 2002,10.2 (美) 弗里曼(Freeman,E.) 等著, 黄柏素 , 梅宏译 . 深入浅出设计模式 , 东南大学出版社 . 3楚荣珍,刘建国,李顺刚 . 软件体系结构设计模式的分析研究. 计算机系统应用,2005,9 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -

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

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁