您好, 访客   登录/注册

软件设计模式及其使用

来源:用户上传      作者: 罗兴荣

  摘要:在计算机软件快速发展的今天,软件设计模式在计算机程序设计的运用中越来越重要。软件设计模式按其完成工作的种类可分为了创建型的模式、结构型的模式以及行为型的模式。在实际应用中根据分析研究问题的结果选择和使用合适的软件设计模式。
  关键词:软件设计 设计模式 模式分类 模式选择 模式使用
  中图分类号:P631 文献标识码:A 文章编号:1007-9416(2013)04-0194-01
  关于模式这个概念,最早的时候是在城市建筑领域当中出现的,而Christopher Alexander[1]所写的一本关于建筑的书中对模式这一概念有明确的定义,其大概含义是说每一个模式都是描述我们周围发生的事情,并对发生的问题进行合理的解释,使得利用这个模式就可以重复的解决类似的问题。Christopher Alexander利用他所得出的模式这个概念解决了建筑领域中的一些问题,模式这一概念发展到现在,已经逐渐成为计算机领域当中独有的概念了。
  1 软件设计模式分类
  对软件设计模式的分类有许多不同的方法,在这里主要是根据模式在计算机软件设计中能够完成何种种类的工作来决定的,大致可以分为创建型的模式、结构型的模式以及行为型的模式这三种类型。而当模式运用于不同因素的时候又可以分为不同的类型,运用于类的时候可以分为类模式,运用于对象的时候可以分为对象模式。所谓类模式就是处理系统中的类与子类之间关系的模式,这些关系可以通过继承的形式来建立,静态的类模式在进行编译的时候便要确定下来;所谓对象模式,就是处理对象之间关系的模式,这些关系在系统运行的时候是能够不断变化的,所以对象模式是动态的模式。
  第一,创建型的软件设计模式。创建型的设计模式是和对象的创建有着十分必然的关系,也就是说,在描述创建对象的时候,要将对象创建过程的具体细节进行隐藏设计,使得系统程序代码能够不依赖具体的对象。所以当我们需要在系统中增加一个新的对象的时候,是不需要修改系统的源代码的。创建型的类模式需要将对象当中的部分在子类当中进行延迟性的创建工作,而创建型的对象模式则是将对象的部分在另一个对象中进行延迟性的创建。
  第二,结构型的软件设计模式。结构型的软件设计模式是处理类的和处理对象的设计模式的组合形式,也就是能够描述类与对象之间的大的结构如何组建起来,并且在组建之后还能够拥有新的功能的一种模式。结构型的类模式是采用继承性的机制来对类进行组合。而结构型的对象模式则是能够描述对象之间的组装方式。
  第三,行为型的软件设计模式。所谓行为型的软件设计模式所描述的是算法和对象之间所拥有的任务或者职责的分配情况,这其中不仅包括所需要的类或者对象需要的设计模式,还包括类和对象之间需要的通讯模式。这些模式的存在使得系统运行过程中难以追踪的十分复杂的控制流得到了良好的刻画。行为型的软件设计模式是使用继承机制来对类进行必要的分配工作,而在使用对象的时候是使用对象的复合而并非继承,所要描述的是一组对象是如何在合作的情况下完成单独的对象无法独自完成的任务。
  2 软件设计模式的选择和使用
  通过上面介绍的面向对象的软件设计模式,我们了解到软件设计模式的存在能够极大限度的帮助设计者用最快最好的方式来完成相关的软件程序设计。而面对特殊的问题的时候,在已有的软件设计模式中也可以十分方便的找到合适的软件模式进行相关的程序设计,尤其是在面对软件设计人员还不熟悉的新问题的时候。
  在对软件设计模式进行选择的时候,应该先理解问题所表现出来的需求,问题中所表现出来的任何需求都能够在一个或者几个的问题领域中找到类似的地方,这种理解问题的需求再在不断的寻找过程中找到可能需要的软件设计模式或者软件设计模式组的过程,对有效的选择软件设计模式从而完成软件设计有着十分重要的作用;在了解了问题的需要并选择了大概的软件设计模式范围之后,再就问题所表现出来的需求对软件设计模式进行最终的选择,并在选择的过程中不断了解这种软件设计模式是如何解决这一类型的问题的。每一类软件设计模式都能够解决一类软件设计方面的问题,每个模式的存在都有其含义,对需要的软件设计模式进行必要的了解,才能够选择最适合解决问题的软件设计模式或者软件设计模式组。与此同时,软件设计模式有许多都是能够相互补充的,所以在选择合适的软件设计模式的时候,应该就设计模式之间的联系要进行必要的研究,这对选择出适合的软件设计模式组有着十分重要的指导意义。尤其是在对一个实际存在的问题进行程序设计的时候,更加应该着重考虑可能影响到软件设计的因素,研究这些因素是否会对系统产生不良影响。
  在选择了合适的软件设计模式之后,就要把软件设计模式合理的运用到系统的设计当中,这需要循序渐进的进行。一是必须理解所选择出来的软件设计模式,能够清楚的了解软件设计模式最合适的使用环境以及在使用之后所能够达到的效果,并且对其是否能够解决实际存在的问题进行合理的判断;二是研究模式的结构、不同部位之间的关系和它们是如何进行合作的;三是就模式的参与者名字进行选择;四是对类进行定义、声明类之间的接口,建立不同类之间的关系,对代表的数据以及对象所引用的实例变量进行定义;六是对模式中专门用来应用的操作名字进行定义;最后就是实现系统设计中执行模式所包含的设计。
  3 结语
  总之,模式这个概念在很早的时候就已经存在了,并且有很多的模式在现有的软件系统设计中都已经出现过了。在国外,对设计模式的研究工作进展十分迅速,他们总是能够不断的总结出新的软件设计模式,而且很多的软件设计开发工具与环境都对他们的开发工作进行了必要的支持,有些软件设计模式的研究者还能够让设计模式运用形式化的表现模式由计算机自动生成需要的代码。所以我们在对设计模式进行实践的过程中,应该不断的总结发展,才能够早日创造出新的软件设计模式。
  参考文献
  [1]张海攀,杨佳.人事信息系统软件体系结构设计关键技术研究[J].电脑知识与技术,2011(22).
  [2]丁黎明.一种获取Java中sun.misc.Unsafe实例的方法[J].中小企业管理与科技(下旬刊),2011(7).
  [3]王爱国,陈伟,陈辉林,关春喜.基于构件技术的中间件开发研究[J].赤峰学院学报(科学教育版),2011(6).
  [4]张广娟,刘建红,赵波.Proxy设计模式在大数据量处理中的应用[A].中国地球物理学会第二十届年会论文集[C],2004年.
转载注明来源:https://www.xzbu.com/8/view-4228439.htm