论设计模式在软件开发中的应用.doc

论设计模式在软件开发中的应用.doc

ID:48614781

大小:45.00 KB

页数:5页

时间:2020-01-29

论设计模式在软件开发中的应用.doc_第1页
论设计模式在软件开发中的应用.doc_第2页
论设计模式在软件开发中的应用.doc_第3页
论设计模式在软件开发中的应用.doc_第4页
论设计模式在软件开发中的应用.doc_第5页
资源描述:

《论设计模式在软件开发中的应用.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、论设计模式在软件开发中的应用在解决这个论题之前,我们首先要了解设计模式的概念,及其基本的分类。“设计模式”这四个字,相信大家在很多地方都会看到,什么是设计模式呢?一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。由于[GOF95]是论述软件模式的著作的第一本,因此有些人常常使用设计模式(DesignPattern)一词来指所有直接处理软件的架构、设计、程序实现的任何种类的模式。设计模式常常划分成不同的种类,

2、常见的种类有:创建型设计模式,如工厂方法(FactoryMethod)模式、抽象工厂(AbstractFactory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式等行为型模式,如模版方法(TemplateMethod)模式、观察者(Observer)模式、迭代子(Iterator)模式、责任链(Chain

3、ofResponsibility)模式、备忘录(Memento)模式、命令(Command)模式、状态(State)模式、访问者(Visitor)模式等等。以上是三种经典类型,实际上还有很多其他的类型,比如Fundamental型、Partition型,Relation型等等。设计模式是面向对象编程的热门话题之一,越来越多的开发人员认识到设计模式的重要性。采用各种语言实现设计模式的文章也越来越多,但是很多开发人员发现很难将设计模式与实际开发中需要解决的具体问题相联系。因为使用设计模式的难点往往不在于模式的实现,而在于很难确定哪种模式可以在现实

4、的应用场景中采用,从而导致了在现实的项目中,面对客户的压力,我们总是采用最直截了当的方法解决问题,来不及多考虑这些方法的优劣,即使明知将带来更大的麻烦也必须如此。有些时候因为选择了不恰当的设计模式,使原本简单的问题变得复杂化。这里通过先通过几个简单例子的说明来介绍在设计模式实际的软件开发中的使用。然后再通过一个项目的分析来论述软件开发中设计模式的使用效果。让我们来看几段常见但又不够优雅的代码,这些代码“你”、“我”、“他”或许都曾写过,但是终有一天你也会与我一样,看着有想撞墙的感觉(如果你写了N久这样的代码,还没有这种感觉,八成你是对编程不再

5、感兴趣了,你对其已经麻木):1.过多的if…else判断if(type==1){//调用获取信息方法1}elseif(type==2){//调用获取信息方法2…….}else{//调用获取信息方法7}这是我们在编程或者看书中要遇到的一段代码,如果条件判断非常之长,并且其他有些地方也有根据类型来做不同处理的情况。这些代码对于后阶段的维护简直是一场噩梦。2.多次载入资源(例如配置文件的读取),引起资源损耗publicstaticStringgetProperty(StringpropKey)throwsException...{Propertie

6、sprop=newProperties();InputStreampropConfFile=Util.class.getClassLoader().getResourceAsStream("configure.properties");//载入propConfFile到prop中,从prop中获取propKey的值,并将其返回}该段代码是我以前在一个项目中写的一段代码,该段代码用于读取工程配置文件的属性,但该段代码是存在一些问题的,因为在每次获取属性时,它都重新载入资源,造成了资源的过多损耗。在我编码的过程中,遇到的问题还有很多。不够优雅的代

7、码、过于僵硬的设计,等等,下面我将通过如上两个例子讨论-----1.解决过多的if…else判断问题如果在一段代码中,不少地方需根据某类型或状态等做出不同的处理,那当类型或状态增加时,这些代码将会过于僵硬,扩展性差,只有在各个分布了if…else的再增加一个elseif,可维护性可想而知。设计模式中有一种模式可以解决该问题,即状态模式。状态模式给我们带来的好处如下:1)状态模式需要对每一个对每一个系统可能取得的状态创立一个状态类(State)的子类,当系统的状态变化时,系统改变所选的子类。与一个特定的状态有关的行为都被包装在一个特定的对象里,

8、而且当需要增加新的状态时,可以以子类的方式将它加到系统里,从而提高了易维护性和可扩展性;2)由于每一个状态都被包装到了类里面,避免了使用过多的条件转移语句。下面我们

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。