下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件设计模式研究 摘要:针对问题场景中如何选择与之相匹配的模式方案,讨论了软件工程中的模式思想,同时分析了特定场合中如何寻找、套用适宜的问题解决方案,最后深入阐述几种常用模式方案的原理以及语法结构。关键词:设计模型;思想复用;门面;适配器;模板方法1概述模式方案也称之为设计模式,是编程界的重要基石,其本质上是一套问题的解决方案,表达了思想级别的成果复用,在软件开发生命周期不断缩短,软件产品通过用性、扩展性、复用性要求越来越高的今天,其日益受到人们的重视。2软件设计模式的类型设计模式最早是在1990年由ErichGamma等程序员提出,灵感源自从建筑设计领域,进而引入到软件工程开发中来。在传统的
2、编程领域,模式方案众多,多达二三十套,每一种都包含特定的思想与智慧,使复杂的场景简单化。以下对几种常用的设计模式作深入全面的分析。门面模式也叫层面模式,是指不同的模块或系统间进行交互时,通过代理接口的形式进行,而不是直接交互。门面模式使得系统间通信变得标准、统一,极大地降低了系统的耦合,非常有利系统的移植、扩充、维护、复用等。门面模式的提出是为了解决系统对外通过过程中,耦合性过高的问题。考虑这样一个问题,有两个开发小组:WEB前端开发小组、应用系统后台开发小组,每个小组有十个程序员,假设两个小组的交互采用组员直接通信,两个组间将会产生100种交互方式,非常不利于对工程经理适配器模式是指形式不兼
3、容的组件通过中间类的整合,使其能为第三方接口效劳。适配器模式的提出是为了解决程序设计过程中接口不兼容问题,提升模块的协作效应,同时增强了软件的复用能力。适配器模式如何让不兼容接口间一起协同工作呢?考虑这样的一个场景,但两个商人因为语言之间的障碍无法沟通,生意无法达成;这时引入一个第三方翻译作为沟通的中介,在这个翻译的帮助下,最终达成交易,那么这个中介翻译的作用一个语言的适配器角色适配器模式的组成结构如图2所示,有一个 模板方法也叫算法模板,是指在基类中先定义整体的算法结构,然后在子类中实现具体细节的算法组合过程。模板方法在很多主流的框架中有广泛的应用,此模式提出是为已集成系统或模块增加算法灵活
4、性。模板方法是如何做到不改变算法结构的前提下而又能灵活集成其它的算法呢?其原理如图3所示。在程序员要对数据库进行编程操作时,在流程上都是按照三个步骤来实现:1连接上数据库;2对数据进行读写操作;3关闭数据库。无论是何种关系数据库管理系统,开头都是建立连接,结尾那么关闭空闲连接,不同的是中间环节的操作语法,因而针对具体关系数据库时重载相关的算法即可。在如图4所示的一个求职场景中,基类Hr中包含三个抽象方法:投简历resume、测试quize、面谈chat,及一个实体方法:求职applyJob,此方法对面试流程进行了算法定义,如先resume、再quize、最后chat;求职者类LiQin与HeJ
5、ia继承Hr类,并实现基类的抽象方法,即在子类具体实现各个面试环节的过程,每个求职者主体面试流程是一致的,但具体细节却是不一致,因为面试的岗位、资历等因素不一样的原因。以上算法准备好就可以开始进行一场求职面试Interview,Interview对象直接通过求职者类LiQin、HeJia调用Hr类的applyJob方法即可实现求职过程。3结束语设计模式是实践的抽象集成,是一套完整、成熟的思想理论,其最终目标是要到达软件复用。本文从理论方面举例论证了设计模式的思想精华,同时从应用方面论述了其使用场景,如何把理论思想与融合在系统架构中是本文下一步的研究方向。参考文献:【1】郭荣.浅谈软件设计模式中的设计原那么.数码世界,202111:5-6.【2】范伟.软件设计模式研究及应用.山东工业技术,202120:189-189.【3】温立辉.JavaEE编程技术.北京:北京理工大学出版社,2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论