设计模式的应用2篇

时间:2017-02-10 04:24:34 来源:论文投稿

第一篇

1设计模式的应用

.NET附属程序集模型使得开发全球化应用程序更加简单,默认情况下,VisualStudio项目系统为每个本地化资源创建一个单独的文件,应用程序在运行时通过资源的区域性签名来标识一个资源,并根据用户界面区域设置加载适当的资源。另外,项目系统还会生成一个强类型对象,从而提供一种以编程方式访问全局资源的简便方法。由于VisualStudio资源编辑器只能处理静态数据,无法使用编辑器存储编程对象,类似于Win-dows窗体的RightToLeft和RightToLeftLayout等需要本地化的属性只能通过编程的方式写入资源文件,很大程度上限制了本地化资源使用的数据类型。通过进一步分析自动生成的具有强类型的资源类的代码可以知道,VisualStudio项目系统自动生成的强类型资源类通过读取XML格式的资源,然后将其作为强类型资源对象的一个属性值提供给资源使用者,由此可见,资源的本质是资源类对象的属性。与自动生成的强类型资源类类似,可以通过自定义资源类,使用自定义机制来实现软件的全球化。为了实现资源与主程序之间的松耦合,可以使用如下设计模式。

1.1工厂方法模式

工厂方法模式的意图是:定义一个用于创建对象的接口,让子类去决定实例化哪个类。工厂方法模式使得一个类的实例化延迟到了子类[2-4]。在全球化软件设计过程中,关键是处理区域性资源。不同区域性的资源不同,但是具有相同的接口,因此可以考虑使用设计模式中的工厂方法模式来定义资源。工厂方法模式主要用于隔离资源的使用者和具体区域性资源之间的耦合关系,它通过面向对象的手法,将创建具体区域性资源的工作延迟到子类,从而实现一种扩展的策略,较好地解决了这种紧耦合关系。图2表示工厂方法模式在区域性资源定义中的应用。工厂方法不再将与特定语言相关的区域性资源绑定到可执行代码中,可执行代码仅处理区域性资源的接口IResource,因此可以与任何特定于区域性的资源一起使用,从而实现全球化软件在不同语言之间的平滑切换。如果IResourceFactory是一个具体类并且为工厂方法提供一个缺省的实现,此时工厂方法创建的资源将对应全球化软件体系结构中的后备资源。

1.2抽象工厂模式

抽象工厂模式的意图是:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类[2-4]。上述工厂方法模式仅解决“单个资源对象”的需求变化,没有解决“系列资源对象(资源组)”的需求变化问题。在全球化软件体系结构中,区域性资源可能是由多个相关的资源一起组成的,例如Windows应用程序中的资源可以包括窗体的资源和各种消息类的资源,在同一时刻这些资源必须对应于同一个区域性,设计模式中的抽象工厂模式可以更好的解决此类问题。图3表示工厂方法模式在全球化软件资源定义中的应用。IResourceFactory仅声明一个创建资源的接口,真正创建资源是由zh_CN_ResourceFactory和en_US_ResourceFactory等具体类来实现的。通常将每一个资源定义一个工厂方法,一个具体工厂将为每个资源重定义该工厂方法以指定资源。抽象工厂模式可以和工厂方法模式组合来应对“资源组”的需求变化。

1.3观察者模式

观察者(Observer)模式的意图是:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并自动更新[2-4]。在全球化软件设计过程中,用户界面和区域性资源是相互分离的,当区域性资源发生变化时,与资源对应的所有用户界面都必须同步更改。因此,需要为某些对象建立一种“通知依赖关系”,当一个对象(目标对象)的状态发生改变时,所有的依赖对象(观察者对象)都将得到通知。设计模式中的观察者模式可以更好地解决该类问题。观察者模式使得开发人员可以独立地改变目标与观察者,从而使二者之间的依赖关系达到松耦合。当目标发送通知时,无需指定观察者,通知会自动传播;观察者自己决定是否需要订阅通知,而目标对象对此一无所知。委托是比抽象Observer接口更为松耦合的设计,在C#的事件模型中,委托充当了抽象的Observer接口,而提供事件的对象充当了目标对象。在全球化软件设计中,将区域性资源设计为目标,用户界面设计为观察者,当区域性资源发生变化时,可以通过事件向所有用户界面发送通知,用户界面得到通知后自动更新界面元素[5-7]

1.4单件模式

单件模式的意图是:保证一个类仅有一个实例,并提供一个该实例的全局访问点[2-4]。在全球化软件开发过程中,涉及到的用户界面很多,但是相同语言版本的用户界面都使用相同的区域性资源。例如,简体中文版的所有用户界面使用zh-CN特定区域性资源,美国英语版的所有用户界面使用en-US特定区域性资源。为了保证用户界面所使用的区域性资源的一致性,需要维护一个特殊的类(即当前区域性),只有保证它在系统中只存在一个实例,才能确保所有用户界面的逻辑正确性以及良好的效率。设计模式中的单件模式可以更好地解决该类问题。在全球化软件设计中,设计一个特殊的类:当前区域性类,让该类实现单件模式,所有用户界面在使用当前区域性时都通过该类进行访问。

2结语

全球化技术的关键是将所有可本地化资源同程序源代码分离,并在内部使应用程序代码为Unicode[8]。资源是在逻辑上由应用程序部署的任何非可执行数据,通过对.NET资源模型的分析得出资源的本质是对象的属性的观点。因此可以自定义资源类,使用自定义机制实现软件全球化。设计模式描述了软件设计过程中某一类常见问题的一般性解决方案,它可以使开发人员更加简单方便地复用成功的设计和结构体系[9]。为了实现区域性资源与主程序之间的松耦合,在自定义资源中恰当地应用了多种设计模式,使得全球化软件的结构更加清晰,资源的部署与维护更加容易。

作者:武光明 单位:武警工程大学电子技术系网络与信息安全武警部队重点实验室

第二篇

1创建型模式

创建型模式主要是基于现阶段快速发展的社会而考虑的。目前的经济和科技飞速发展,很多的工作都需要根据实际的情况来选择设计模式,固有的模式框架已经满足不了用户的需求了,因此创建型模式的出现其实是一个必然发生的情况。从现有的社会发展来看,创建型模式主要分为以下几种:第一,原型模式,这种模式主要是使用原型实例对于创建对象进行指定,在拷贝的原型的基础上创新的对象。采用原型模式的优势在于,不仅节省了工作时间,同时新建立的对象能够结合原有对象的优势,充分基于用户的需求来工作和设计。第二,单例模式,这种模式主要指的是保证一类对应一个实例,并提供访问的全局问点。从主观的角度来说,单例模式具有较强的针对性,并且在很多方面都达到了一个较为高端的水准,因此完全能够满足客户的需求。

2设计模式在软件设计中的应用

2.1设计模式的步骤

设计模式在软件设计当中应用的时候,必须确定步骤,这样才能保证在具体的工作当中,获得一个较为积极的效果。首先,对需要解决的问题进行抽象,对类型进行适当的划分。这个步骤是在软件设计当中应用设计模式的基础性步骤,如果没有将问题进行适当的抽象化,即便是选对了类型,也达不到预期的工作效果,反之一样。其次,按照相关问题的类型选择合适的设计模式。经过多次深化和研究,设计模式的的类别非常多,针对不同的工作具有不同的设计模式,只有选择针对性的模式,才能处理好问题。第三,规划问题以及匹配模式。这个环节是具体的应用环节。软件设计需要在每一个方面都达到较高的水准,否则很难保证在日后应用的时候,能够充分发挥出软件的性能。第四,将选取的模式进行变体。第五,设计并且细化所需要的软件体系结构。以上五点是在软件设计中应用设计模式的具体步骤,必须严格执行。

2.2设计模式的应用

在选定软件设计模式以后,具体的应用方式具有非常规范的准则,必须按照相应的程序来进行。第一,对设计模式进行一个大概的浏览,了解其具体的功能和作用。第二,研究协作部分以及结构部分等一系列重要的分支。第三,观察代码示例部分。第四,选择模式参与者的名字,在定义类以后,设计专用的操作名称。上述的步骤能够帮助设计模式在软件设计当中更好的应用,并且达到预期的效果。总结:本文对设计模式在软件设计中的应用进行了一定的研究,从目前的情况来看,设计模式的应用具有非常好的效果,并且在很多方面都表现出了一定的积极状态,应用的结果也得到了广泛的认可。在日后的工作当中,需要对设计模式进一步深化,通过建立针对性的方案和预案,来帮助软件设计获得进一步的提高,充分满足用户的需求,促进社会的全面进步。相信在日后的工作当中,设计模式会对软件设计产生更大的积极作用。

作者:李潇 单位:中海油信息科技有限公司信息技术服务中心上海开发部


更多工商管理论文详细信息: 设计模式的应用2篇 论文代写
http://m.400qikan.com/lw-139113 论文代发

相关专题:律师 企业文化整合

相关论文
相关学术期刊
《铜加工》 《湖南邮电职业技术学院学报》 《东方丛刊》 《北京舞蹈学院学报》 《中华临床感染病杂志》 《实验动物与比较医学》 《计算机科学前沿》 《宿州教育学院学报》 《中华家教》 《柳州师专学报》

< 返回首页