您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页面向对象软件开发中代码重用的实现策略

面向对象软件开发中代码重用的实现策略

来源:华佗小知识
a竹哉2015年第28卷第5期 Electronic Sci.&Tech./May.15.2015 doi:10.16180/j.cnki.issnl007—7820.2015.05.051 面向对象软件开发中代码重用的实现策略 赵 焱 (昆明船舶设备研究试验中心人事处,云南昆明摘要65oooo) 代码重用可加快软件开发的过程,且降低了开发和维护的费用,同时可在一定程度上提高软件产品的质 量。为了尽可能地提高面向对象软件开发中代码的可重用能力,文中结合实例分析了在该方法中代码重用的3种实现 策略,并提出了在重用过程中需要注意的几个方面。 关键词 面向对象;软件开发;代码重用;代码分离 中图分类号TP311.132 文献标识码A 文章编号1007—7820(2015)05—181—03 Implementation Strategies for Code Reuse in 0bject—oriented Software Development ZHA0 Yan (Human Resources Department,Kunming Shipbuilding Equipment Research Test Center,Kunming 650000,China) Abstract Code reuse can speed up the process of software development,reduce the cost of software develop・ ment and maintenance,and can improve the quality of software products to a certain extent.To improve the reuse a- bility in object-oriented software development,this paper analyzes there implementation strategies of code reuse,and proposes some issues to be noted in the process of reuse. Keywords objeet oriented;software development;code ruse;code separation 为提高软件的开发效率,软件工程师们越来越追 求开发更多、更有通用性的可重用构件。传统的结构 化方法是将系统功能分解编写模块,每个模块实现特 定的功能,可重用的单位只能是模块,且用户需求的变 化需花费较大代价去实现。为了适应软件开发的更高 要求,提高软件产品的稳定性和可修改性,从而产生了 面向对象…。 础,同时为面向对象设计和实现提供了一个基本框架。 面向对象的设计以面向对象的分析为基础,通过系统 设计和对象设计将分析阶段得到的需求转变成符合成 本和质量要求的、抽象的系统实现方案。面向对象的 实现即选用能最完善、准确地表达问题域语义的面向 对象语言开发软件,其基本目的和主要优点是通过重 用提高软件的生产率…。 1 面向对象的软件开发 面向对象(Object Oriented,O0)是一种软件开发 2代码重用的实现策略 在面向对象的软件开发过程中,一般通过对接口 的方法。起初,其专指在程序设计中采用封装、继承和 多态等设计方法。但如今,面向对象开发方法的研究 已日趋成熟,面向对象的思想已涉及到软件开发的各 个方面。 编程、改写类的实例方法和代码分离的方式来实现代 码重用。 2.1对接口编程 面向接口编程是实际开发过程中实现代码重用的 一面向对象的软件开发包括3个阶段:面向对象的 分析(Object Oriented Analysis,OOA),面向对象的设计 (Object Oriented Design,OOD)、以及面向对象的实现 个重要方法,其根本思想是将一个接口或抽象类从 组功能相同的组件中进行抽象形成。通过面向接口 一编程,当任务中需要其他组件时,无需对程序代码进行 更改,而只需更改该接口的实现即可。现存的组件不 (Object Oriented Programming,OOP)。面向对象分析 的目的是对客观世界的系统进行建模,用分析模型来 能满足设计需求时,通常有两种方法来完成:一是创建 一明确问题需求,为用户和开发人员提供一个协商的基 组新的组件;二是对现存的相关组件进行扩展,通过 继承是代码重用的一个基本方法,但在面向对象 新的子类来完成所需的扩展功能 。 收稿日期:2014-10.26 作者简介:赵焱(1988一),女,硕士研究生。研究方向:通 信软件。E.mail:bupt—zhaoyan@163.com 编程中,类继承不是代码重用的真正要点,可通过对接 口编程来达到代码重用的目的 。在实际应用过程 WWW.dionzikeji.org————————— 181 赵焱:面向对象软件开发中代码重用的实现策略 中,当某块代码能编写成的全局过程时,只要将其 所有类形式的参数改为接口的形式,就可进一步提高 的可重用能力。经此改动后,过程的参数就不仅是原 来类所创建的对象,而是实现了该接口所有类的对象。 例如,假设有这样一个全局静态方法contains(): static public bollean contains(Rectangle rect,int x, int Y){.一} 可将其改写为: public int getPerimeter() {return pPoly— gon.computePerimeter(this);} public boolean isConvex() {return pPoly— gon.isConvex(this);} public boolean containsPoint(Point P){retum pPoly— gon.containsPoint(this,P);} 其中,pPolygon类定义如下: class pPolygon{ static public int eomputePerimeter(Polygon poly— 该方法用于检查指定的点是否包含在矩形内,若将rect 的参数类型Rectangle改成接口: static public oolean contains(Rectangular rect,int x, int Y){.一} 其中,Rectangular接口的定义如下 public interface Rectangular{Rectangle getBounds gon){..。} static public boolean isConvex(Polygon polygon) {..・} static public boolean containsPoint(Polygon poly— ();} 经此改动后,contains方法的参数变成所有实现了 Rectangular接口类的对象。通过将参数类型改为接口 的形式,可放宽对参数类型的,扩大过程所使用参 数的范围,从而大幅提高方法的可重用能力。 gon,Point P);.一} } 在上述例子中,pPolygon类中封装的公用静态方 法参数均与Polygon类型的对象有关,通过改写pPoly— 通过上述分析可知,将参数类型改为接口可提高 代码的可重用能力,但在实际应用过程中,将参数类型 改成接口可能有多种方式,不同的更改方式其实现所 需的代码、数据和容易程度均不相同。因此,首先需确 保方法对参数的要求,然后尽量将参数类型改为简单 的接口。接口越简单,类实现接口时就越容易,能将其 gon类的实例方法,Polygon类的功能转由pPolygon类 以过程为单位进行提供,不继承Polygon类也可使用 Polygon类的功能。由此,客户代码只使用自身需要的 代码,而无需关心其他不需要的功能。 2.3代码分离 由于继承会带来一些多余的方法和数据成员,且 作为参数进行使用的类也就越多,代码的可重用能力 则越大 。 2.2改写类的实例方法 更改父类时会影响子类功能,子类对父类的依赖关系 会使代码变得复杂,子类中的覆盖方法是否要调用父 类中的对应方法有时也并不明显。因此,仅通过继承 来实现代码重用会存在一定的不足,其并不是最为理 想的代码重用机制,所以通常是将继承与代码分离技 在实际编程过程中,对于那些能执行某个单一任 务的方法,可进行重用来节省编程的成本。为此,可通 过将相关的实例方法组织成为的类,使其成为一 个公用的全局性静态过程。为了提高这种过程的可重 用性,过程代码应同静态工具方法编写一致:即只能使 用自身的输入参数,仅可调用其他全局性的过程,不能 术相结合来实现代码的重用。所谓代码分离就是将可 变部分和不可变部分分离开,其是面向对象设计的一 个重要原则。在通过继承进行代码重用时,可在抽象 基类中定义好不可变的部分,然后由其子类去实现可 使用任何非局部的变量 ]。这种对外部依赖关系的限 制简化了过程的应用,使得过程能方便地用于任何地 变的部分 J。 方。这种组织方式的使用使得代码结构更加清晰。因 此,即使不考虑重用性的代码也能从中获益。 众所周知,Java中的方法不能脱离类而单独存在。 所以为实现代码重用,可将相关过程定义为公用的静 态方法,并组织为的类。例如,对于Polygon有: class Polygon}..・ 3代码重用的注意事项 尽管代码重用的优势明显,但并非所有的代码均 能进行代码重用。代码重用需注意以下几点:(1)只 有高通用性的代码才可重用。一般来说,通用性较低 的代码不适合进行代码重用。因在多个项目间重用不 为通用性设计的代码,反而会使整个开发过程变得复 杂,同时会增加开发的时间和成本。(2)依赖度高的 public int getPerimeter(){.-.} public boolean isConvex(){.一} public boolean containsPoint(Point P){.・・}.. } 182——WWW.代码不适合重用。有些代码与开发人员有较大的依赖 性,且无相应的文档来描述程序设计细节。新进项目 的人需花费大量的时间和精力才可理清楚代码间的相 dlanzikejj.org 赵焱:面向对象软件开发中代码重用的实现策略 互关系。类似依赖度高的代码越多,工作难度越大,进 行代码重用就越困难。(3)高成本、低使用率的代码 不适合重用。代码重用虽有众多优势,但在使用过程 [2]Bruce Ecke1.Java编程思想[M].3版.陈昊鹏,译.北京: 机械工业出版社。2005. [3] Allen Holub.Build user interfaces for object—oriented sys. 中仍需考虑其成本和使用率。若需付出过高的成本, 且重用代码的使用率较低,则不适合进行代码重用。 tems[EB/OL].(2000—03)[2014—10]http://www.java— wodd.corrt/article/2076459/core—java/building—user— interfaces—for—object—oriented—systems一一part一1.ht- ITI1. 4结束语 介绍了面向对象的软件开发方法及其3个阶段: 面向对象的分析、面向对象的设计和面向对象的实现。 并结合实例分析了在该开发方法中代码重用的3种实 现策略,即对接口编程、改写类的实例方法和代码分 离。通过这3种策略与面向对象编程技术的结合,能 [4] 马永杰,蒋兆远.基于功能构件的软件复用方法[J].计算 机应用与软件,2009,26(8):75—77. [5]谢冰,张晨东.面向对象测试代码复用算法与工具[J].计 算机工程与科学,2008,3o(11):109—110. [6] 郭志学.易学设计模式[M].北京:人民邮电出版社,2009. [7]成岳鹏,戴永成.基于面向对象的软件重用技术[J].河北 工业科技,2009,26(5):434—437. 简化方法的复杂性和依赖关系,同时可提高方法的可 重用性和内聚力。但并非所有的代码均能进行代码重 用。因此,在重用过程中要注意代码的通用性和依赖 度,同时还需考虑重用的成本和重用代码的使用率,使 代码重用在面向对象软件开发中真正发挥其的重要 作用。 [8] 萨默维尔.软件工程[M].9版.北京:机械工业出版 社.2011. [9]Herbert Schildt.Java完全参考手册[M].8版.王德才,吴 明飞,唐业军,译.北京:清华大学出版社,2012. [10]秦小波.设计模式之禅[M].2版.北京:机械工业出版 社,2013. 参考文献 [1]梁燕来,程裕强.Java面向对象程序设计[M].北京:人民 邮电出版社,2013. [11]朱福喜.面向对象与Java程序设计[M].北京:清华大学 出版社,2009. [12]Grady Booch.面向对象分析与设计[M].3版.北京:电子 工业出版社,2012. (上接第180页) 参考文献 王兴.体育院校培养创新人才的教学管理研究[D].上 [4] 李莺歌.大学体育网络化教学与管理模式初探[J].赤峰 学院学报,2008(12):245—246. 赵洪明.基于高校校园网的体育网络化教学基础 [5] 潘明英,海:上海体育学院,2009. [2] 张铁雄.对大学体育教学模式的研究[J].体育科学,2003 (3):29—31. 平台体系结构研究[J].江苏技术师范学院学报,2012 (6):114—117. [6] 闰冰.基于体育多媒体教学技术的体育教育[J].体育世 界:学术版,2010(9):74—75.  [3] 包克.学校体育管理观念的转变与教学改革的探索[J].辽宁行政学院学报,2007(2):126. WWW.dlanzikeji.org l83 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务