软件设计模式的应用场合及最佳实践

作者:检测猫     发表时间:2022-06-05 23:44:41   浏览次数:28



  摘要:通过对软件设计模式的介绍以及工作实践中几种常用的软件设计模式的研究,给出了软件设计模式的应用场合及最佳实践,实践表明本文所阐述的单例模式与原型模式、策略者方法和模板方法模式以及代理模式在三层Web应用开发中切实有效。


  关键词:设计模式; 单例模式; 策略者模式; 代理模式;


  1 引言


  自20世纪90年代软件设计模式概念提出以来,一直受到广大软件开发者的青睐。软件设计模式共分为了3类23种,每种设计模式都有其比较合适的应用场景。但是大多数设计模式并不能得到发扬广大,得不到充分的利用。因此,为了更好地去宣传软件设计模式及让我们开发的软件更加健壮和可靠,本文将结合自己的软件开发实践,试图探索软件设计模式的最佳实践。


  2 软件设计模式介绍


  软件设计模式是一种为多数人知道的、能被反复使用的、并分类编目的代码设计经验的概括与总结[1].使用软件设计模式可以让人更加容易理解代码、保证代码的可靠性以及程序的复用性等。常见的软件设计模式有:创建型模式包括单例模式、原型模式、工厂方法模式、抽象工厂模式和生成器模式;结构型模式包括适配器模式、组合模式、代理模式、桥接模式、装饰模式、外观模式和享元模式;行为型模式包括策略模式、模板方法模式、职责链模式、备忘录模式、命令模式、中介者模式、解释器模式、迭代器模式、状态模式、访问者模式和观察者模式。在所有的软件设计模式中,只有工厂方法模式、适配器模式、解释器模式、模板方法模式既有类模式也有对象模式,而其它的只有对象模式。


  3 软件设计模式应用的最佳实践


  软件设计模式并不是短时间内就容易搞懂的知识,也不能说一个人会不是设计模式,因为设计模式没有绝对的对与错,只有理解的深浅不同,实践应用的合适程度不同[2].本来软件设计模式就是软件开发过程中的最佳实践之一,项目中合理地运用设计模式可以完美地解决很多问题。因此,这里将结合自己的开发经验,探索软件设计模式应用的最佳实践。


  3.1 结合使用单例模式与原型模式


  单例模式是在这整个系统开发过程中保证一个类只要一个实例,并提供一个访问它的全局访问点[3].而原型模式是用原型实例指定创建对象的实例,并且通过复制这个原型来创建新对象,即通过克隆的方式来创建对象。在设计过程中单例模式因只有一个实例,可以节省系统空间,但是因只有一个实例若在多线程并发情况下,可能会发生冲突。而原型模式,因需要时就会复制一个对象出来,会增加系统开销,但在多线程并发时,不会发送冲突。因此,在项目实践中,可以利用这两种设计模式优点,避免其缺点,达到一种较为完美的组合,形成一种最佳实践。如几乎所有的系统都要对用户信息关键信息进行加密保护,为了提高代码的可重用性和可维护性,可以采用单例模式对用户密码等信息提供保密支持。这样可以采用单例模式设计一个对信息进行加密的工具类,为系统提供一个访问它的全局访问点,以提高效率和节省空间。还有在业务逻辑层需要数据访问层某些对象的支持,这样很多地方都使用某个数据访问层的对象,这时对于这样的对象可以采用原型模式,因为原型模式是用原型实例指定创建对象的实例,并且通过复制这个原型来创建新对象,这样可以节省时间,而且效率也高。


  3.2 合理使用策略者模式和模板方法模式


  策略者模式定义一系列算法,并将每个算法封装起来,并让它们可以相互替换[4].也就是说策略模式实际上就是分开算法的定义和使用,分开算法的行为和环境,专门定义一个抽象策略类去声明算法,然后再定义具体的策略类去实现抽象策略类中的算法。这样我们使用具体的算法时是针对抽象策略编程,而不是针对实现编程,符合依赖倒置原则。因此在数据访问层的ORM中,可采用了策略者模式完成查询结果到对象或对象集的操作,这样的模式处理结果集具有通用性、规范性。模板方法模式是在抽象的父类中声明一些算法,而将这些算法的实现延迟到子类中,从而使得子类可以不改变算法结构即可重写这些算法;使用该模式,可完成了SQL语句的统一执行。实际上,用策略模式和模板方法模式结合完成从数据库表记录到对象或对象集的双向映射是一种不错的实践方案。


  3.3 配合使用代理模式


  在项目开发过程,往往会有一些对象不能直接引用或不适合使用另一个对象[2],这时代理对象可以作为它们的中介,这种设计的思想即为代理模式。在表现层控制器对用户请求的处理和响应,通常就可采用代理模式,因为代理模式可以解决直接访问对象时带来的问题,而要访问的对象在互联网的应用服务器上,对象创建开销大,并且很多操作还需要安全控制等。这样就可以把杂乱的用户请求统一用一个控制代理来完成,既方便又安全。


  4 结束语


  实践证明,本文所阐述的单例模式与原型模式、策略者方法和模板方法模式以及代理模式在三层Web应用开发中切实有效。即设计模式若利用好设计模式,可以简化并快速设计、方便开发人员之间的通信交流、降低风险、有助于转到面向对象技术。但是如果利用不好,将会影响系统的性能。


  参考文献

  [1]张英杰,朱雪峰。模式驱动的软件架构设计研究综述[J].计算机科学,2018 (S2) .

  [2]韩菁华。设计模式及其在软件设计中的应用[J].信息系统工程,2016 (05) .

  [3]Shikha Gautam, Brijendra Singh. Assessing the Theoretical Impact of Design Patterns on Software Quality[J]. Software Quality Professional, 2018 (1) .

  [4]Sandra Sanchez-Gordon, Mary Sánchez-Gordón, Murat Yilmaz, etal. O'Connor. Integration of accessibility design patterns with the software implementation process of ISO/IEC 29110[J]. Journal of Software:Evolution and Process, 2019, 31 (1) .


作者单位:菏泽学院原文出处:杨俊峰.软件设计模式的最佳实践探索[J].中外企业家,2019(27):201.


本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时删除处理。

学术资讯相关资讯

学术不端查重入口


检查语种:中文,英文,小语种 预计时间:2小时-6小时
系统说明硕博初稿检测(一般习惯叫做硕博预审版),论文查重检测上千万篇中文文献,超百万篇各类独家文献,超百万港澳台地区学术文献过千万篇英文文献资源,数亿个中英文互联网资源是全国高校用来检测硕博论文的系统,检测范围广,数据来源真实,检测算法合理!本系统含有(学术库与源码库)。(限制字符数30万)
检查范围硕士、博士论文初稿【误差一般在3%左右,不支持真伪验证】
498.00元/篇
立即检测
检查语种:中文,英文 预计时间:60分钟
系统说明学位论文查重,维普大学生版论文查重系统:高校,杂志社指定系统,可检测期刊发表,大学生,硕博等论文。检测报告支持PDF、网页格式,性价比高!
检查范围毕业论文、期刊发表
4.00元/千字
立即检测
检查语种:中文,英文,小语种 预计时间:2小时-6小时
系统说明比定稿版少大学生联合比对库,其他数据库一致。出结果快,价格相对低廉,不支持验证,适合在修改中期使用,定稿推荐PMLC。——不支持验证!!!
检查范围本/专科毕业论文
288.00元/篇
立即检测
检查语种:中文 预计时间:60分钟
系统说明毕业论文查重,万方查重系统,涵盖期刊、学位论文、学术成果、学术会议论文的大型网络数据库;比肩中国知网的学术数据库。最多支持10万字符。仅支持中文。
检查范围学位论文
4.00元/千字
立即检测
检查语种:中文,英文,小语种 预计时间:24小时-72小时
系统说明本科定稿查重版(一般习惯叫本科终评版),论文抄袭检测系统,专用于大学生专、本科等论文检测的系统,大多数专、本科院校使用此检测系统。(限制字符数6万)
检查范围本科论文检测【是提交学校前进行的一次摸底评估,基本一致】
388.00元/篇
立即检测
检查语种:中文/英文 预计时间:60分钟
系统说明学位论文查重,维普查重系统是国内知名数据公司。本系统含有硕博库、期刊库和互联网资源等。支持中文、英文、繁体、小语种论文检测,最多支持1万字符。--不支持指定院校!!!
检查范围毕业论文、期刊发表
35.00元/篇
立即检测
检查语种:中文 预计时间:60分钟
系统说明论文查重平台,PaperPass的比对指纹数据库由超过9000万的学术期刊和学位论文,以及一个超过10亿数量的互联网网页数据库组成。指纹库是指提取的文章关键性特征信息,并非全文。
检查范围学术期刊和学位论文
3.00元/千字
立即检测
检查语种:中文,英文,小语种 预计时间:1小时-24小时
系统说明amlc期刊系统是杂志社专用系统,针对编辑部来稿、已发表文献、学校、事业单位业务报告、职称等论文的重复率检测系统。
检查范围职称论文/学术发表
3.00元/千字
立即检测
检查语种:中文 预计时间:60分钟
系统说明格子达依托学术期刊库收录了海量对比资源,其中包括中国论文库、中文学术期刊库、中国学位论文库等国内齐全的论文库以及数亿级网络资源,同时本地资源库以每月100万篇的速度增加,是目前中文文献资源涵盖全面的论文检测系统,可检测中文、英文两种语言的论文文本。
检查范围毕业论文、期刊发表
4.00元/千字
立即检测
检查语种:中文 预计时间:1小时-24小时
系统说明万方职称论文检测系统,适用于职称发表/未发表论文查重,注:上传论文请标注发表日期,如无则使用论文正式发表时间;如未公开发表的,则用论文完成时间作为发表日期。
检查范围职称论文
6.00元/千字
立即检测
在线客服 返回顶部