设计模式在软件重构中的应用与实现.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《设计模式在软件重构中的应用与实现.pdf》由会员分享,可在线阅读,更多相关《设计模式在软件重构中的应用与实现.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-88-中国科技信息2010年第6期 CHINA SCIENCE AND TECHNOLOGY INFORMATION Mar.2010信息科技引言设计是一个构思的过程;模式是重复问题的解决方案的核心1;凡经过构思,获得重复问题的解决方案的核心,在广义上都可称为设计模式。重构是在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构。本质上说,重构就是:在代码写好之后,改进它的设计2。软件重构的两个重要的原因:1).系统构造先天不足;2).具体实现方式不当3。设计模式正好在这两个关键问题上体现了优势。软件重构通常包括架构重构、设计重构、系统代码重构三个层面的重构,而架构模式、面向对象
2、设计模式、面向对象程序设计语言的代码模式结合在一起,实设计模式在软件重构中的应用与实现王宏伟 董丽丽 西安建筑科技大学 7 1 0 0 5 5Application&Realization of Design Pattern in RefactoringWang Hongwei Dong LiliX i a n U n i v e r s i t y O f A r c h i t e c t u r e&T e c h n o l o g y,T h e C i t y O f X i a n 7 1 0 0 5 5p r o j e c t-P C S I M S s h o w s h
3、o w t o u s e m e c h a n i s m s o fd e s i g n p a t t e r n t o r e c o n s t r u c t o l d s y s t e m t h a t h a sn o t a d a p t e d i t s e l f t o m a n y c h a n g e s o f r e q u i r e m e n t s.A t t h e s a m e t i m e ,t h e w o r k i n g w a y i n t e g r a t e d i np r a c t i c a l
4、p r o j e c t-P C S I M S s h o w s h o w t o r e a l i z e a n e ws y s t e m t h a t i s c h a r a c t e r i s t i c o f r e u s i n g ,g o o dm a i n t e n a n c e,s t r o n g s t a b i l i t y,a n d f l e x i b l e d e a l i n g w i t hm a n y c h a n g e s o f r e q u i r e m e n t s.A n i n-d
5、e p t h d i s c u s s i o na b o u t u s i n g i t s f u n c t i o n a n d s i g n i f i c a n c e i s p r e s e n t e d.Key wordsa r c h i t e c t u r e d e s i g n p a t t e r n;o b j e c t-o r i e n t e d d e s i g np a t t e r n;i d i o m d e s i g n p a t t e r n;r e f a c t o r i n g摘 要文章介绍不同层
6、面的设计模式(架构模式,面向对象设计模式,面向对象程序设计语言的代码模式)的实现方式。结合实际项目P C S I M S,具体展示了应用这种设计模式机制来重构不适应需求变化的旧系统,从而实现一个具有复用特性、易维护特性、强壮的稳定特性以及具有灵活应对需求变化特性的新系统。讨论这种设计模式机制在软件重构中的作用与意义。关键词架构模式;面向对象设计模式;面向对象程序设计语言的代码模式;重构AbstractT h i s a r t i c l e i n t r o d u c e s t h e w o r k i n g w a y o f d i f f e r e n ts i d e s
7、 d e s i g n p a t t e r n s s u c h a s A r c h i t e c t u r e D e s i g nP a t t e r n,O b j e c t-O r i e n t e d D e s i g n P a t t e r n,I d i o m D e s i g nP a t t e r n.T h e w o r k i n g w a y i n t e g r a t e d i n p r a c t i c a l-89-现了系统设计上比较严格的高中低层次的搭配,使系统构造从不同的尺度实现了“高内聚、低耦合”,同时提高了
8、设计复用、代码复用,让重构后的系统具有灵活性、扩展性、稳定性,也提高了可理解性、可维护性,也加快了开发速度。在软件重构中,使用这三个层面的设计模式机制,在最大的程度上解耦,使重构后的系统能够灵活应对需求变化,以最小的成本来扩展系统新的业务需求;同时在最大程度上实现代码复用,使重构后的系统性能显著提升。1、模式在软件重构中的工作原理1.1 三层架构模式与 IoC(Inversionof Control)模式架构模式(A r c h i t e c t u r ePattern)表达了软件系统基本的组织结构方式或系统构成方式。架构模式帮助界定子系统的组成,指定了各子系统的职责,并且包括了组织各子系
9、统间关联关系的规则或指南4。分层架构模式是根据公共的属性,规定了每一层的职能,通过逐层调用实现系统功能。三层架构通常是指表示层(P r e s e n tL a y e r)、业务逻辑层(B u s i n e s sLayer)、数据访问层(Data AccessLayer)。表示层用来显示数据和接收用户输入的数据;数据访问层实现访问数据库的职责。业务逻辑层是系统架构中体现核心价值的部分,它的关注点集中在业务规则的制定、业务流程的实现、业务需求的有关系统设计,它在体系架构中的位置关键,处于表示层与数据访问层中间,起到数据交换中承上启下的作用。三层协作实现系统功能。反向控制模式(Inversi
10、on ofControl)是一种采用依赖注入的解耦方案。所谓依赖注入即组件之间的依赖关系,由容器在运行期决定,即由容器动态地取某种依赖关系注入到组件中。让组件依赖于抽象,当组件要与其他实际对象发生依赖关系的时候,通过抽象来注入依赖的实际对象。三层架构结合 IoC 模式的解耦方案,解除了业务逻辑层被表示层依赖的关系,实现了表示层与业务逻辑层的完全松耦合,使得业务规则发生变化,只修改业务逻辑层,而表示层无须修改。1.2 抽象工厂模式面向对象设计模式是以面向对象的思维来思考软件设计结构,它在设计层面刻画了面向对象的核心精神。面向对象设计模式是描述面向对象设计过程中,特定场景下类与相互通信对象之间常见
11、的组织关系,包括它们的角色、职责、协助方式几个方面。它是针对软件需求的变化性(客户需求的变化、软件技术上的变化),来实现应对变化提高复用的目标。模式用来管理变化。从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减到最小。抽象工厂模式(A b s t r a c t F a c t o r yPattern)是 GOF23 种模式之一。在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作,同时由于需求的变化,存在更多系列的对象创建。这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口,如何应对这种变化?提供一种封装机制来隔离出“这个易变对象”的变化,
12、从而保持系统中其它依赖对象的对象不随着需求的改变而改变。A b s t r a c t P r o d u c t A 和AbstractProductB 是两个抽象产品,之所以抽象,是因为它们有可能有两种不 同 的 实 现,而 P r o d u c t A 1、ProductA2 和 ProductB1、ProductB2就是对两个抽象产品的具体分类的实现;AbstractFactory 是一个抽象工厂接口,它里面包含所有的产品创建的抽象方法,而 ConcreteFactory1 和ConcreteFactory2 就是具体工厂。通常 在 运 行 时 刻 再 创 建 一 个Concrete
13、Factory 类的实例,这个具体的工厂再创建具有特定实现的产品对象,也就是说,为创建不同的产品对象,客户端应使用不同的具体工厂。这样的好处是易于交换产品系列,由于具体工厂类,在一个应用中只需在初始化时出现一次,这使改变一个应用的具体工厂变得非常容易,它只需改变具体工厂即可使用不同的产品配置;其二是它让具体的创建实例过程与客户端分离,客户端是通过它们的抽象接口操纵实例,产品的具体类名被具体工厂的实现分离,不会出现在客户代码中。1.3 IDIOM 设计模式一个 IDIOM(面向对象程序设计语言的代码模式)设计模式是与某种编程语言(例如 c#)密切结合的一种低层次的设计模式。一个 IDIOM 可以
14、帮助我们实现一个构件内特定的某方面的功能,或者帮助实现构件间特定的关系。当然,这是由于那种编程语言具有的特性所决定的这种能力5。.Net 下的 C#语言是一种面向对象程序设计语言。它的封装性、继承性、多态性能很好的支持面向对象的风格、开闭原则,实现软编码。C#中的泛型编程,也是.Net 下的典型特征,同一份代码可以多次复用。C#中的泛型编程利用参数化类型将类型抽象化。它通过晚期绑定的,在运行时实例化具体的类型,实质上是类型的多态,能够灵活应对类型的变化。2、模式在软件重构中的实现方式2.1 三层架构模式结合 IoC 模式实现层间解耦在分层架构中,由于层是一种弱耦合结构,层与层之间的依赖是向下的
15、,底层对上层而言是“无知”的,改变上层设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种依赖也是弱依赖关系。因而在不改变接口定义的前提下理想的分层架构应该是一个支持可抽取、可替换的抽屉式架构。正因为如此业务逻辑层的设计对于支持一个可扩展的架构尤为关键,因为它扮演了两个不同的角色,对于数据访问层而言,它是调用者;对于表示层而言它是被调用者。依赖与被依赖关系都纠集在业务逻辑层上,应用 IoC 解耦方案,解除了业务逻辑层被表示层依赖的关系,实现了表示层与业务逻辑层的完全松耦合。满足依赖倒置的原则高层与底层共同依赖于抽象,表示层与业务层依赖于 IoC容器。IoC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 模式 软件 中的 应用 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内