Java柔性多态功能设计与实现.docxVIP

  • 4
  • 0
  • 约7.03千字
  • 约 7页
  • 2019-03-15 发布于广东
  • 举报
系 信息工程学院 学号 重庆科技学院 信息工程学院 论文题目:Java柔性多态功能设计与实现 作 者 小 喻 专 业 计算机科学与技术 班 级 计科A1001 成 绩 指导教师 张望 2013年1月10日 Java柔性多态功能设计与实现 小喻 重庆科技学院,重庆 摘要: 提出了柔性多态设计思想,即固化接口定义,由子类多态派发函数实现对真实函数的功能调 用。应用这种设计,仅修改所屈模块就可以完成相应功能的增加、删除、修改,父类接口及 相关联各模块均不用变化。也就是说当需求分析变化时,程序改动最小。 关键词:柔性多态;固化接口;派发函数;模块 Design and implementation of Java flexible polym orphism Jin Baidong: (School of computer and infonuation technology , Liaoning nornuil university, Liaoning, Dalian 116081, China)Abstract: Tn this article, an idea of flexible polymorphism design is proposed, namely fixing the interface define and executing the real function through the polymorphic dispatch function. Applying this design, only reprogram of relevant modules is needed to add, update and delete the appropriate fun ctions, while pare nt interfaces and other relevant modules needs not to be changed? That is to say that the least change is needed when requirement analysis changes. Key words: flexible polymorphism ; fixing interface; dispatch function; module 0引言 多态是编程屮常用的一种技术,例如编制求圆和长方形面积的类图(如图1所示)。 《Request area》ClientClientfloat getArea()Rectangle float getArea() 《Request area》 Client Client float getArea() Rectangle float getArea() 图1多态类图示例 从图1可以看出这是常规的多态程序设计,父类是Shape,多态接El函数是float getAreaO; 子类Circle及Rcctanglo分别重写了多态函数getAreaO;客户端通过动态绑定对接口编程实 现了求圆或长方形血积的功能。但是随着时间的推移,如果还需要求圆和长方形的周长,该 如何修改程序呢?普通的思路是:重新定义接口 Shape ,增加求周长接口函数float getAroundLenO ,再在Circle及Rectangle类中实现getAroundLeni^i数的具体功能。这势必 造成接口及实现模块,客户端调用程序等需要修改并重新编译。这是我们不希望看到的,我 们希望仅底层具体模块功能需修改并编译,而接口,上层模块及客户端程序不要重新编写。 因此,如何巧妙运用多态,满足不断变化的需求,只修改须改变的具体模块,是本文论述的 重点。 1?普通多态编程局限性 从图1及上述分析中可看出:如果接口函数内容发生变化,那么相应的各实现子类必须发生 变化,导致相关联的各级模块必须重新编程及编译,这即是普通多态编程的局限性。造成这 一结果的主要原因是父类、子类定义的多态函数关联过强,消除这种关联性,是实现本文柔 性多态功能的关键。 2柔性多态设计与实现 柔性多态是指程序架构必须满足不断发展的需求分析的变化要求,只修改需要改变的子模 块,而相关联模块及主程序都不需要改变。 2. 1简单实例代码 仍以求圆和长方形面积、周长为例,采用柔性多态,具体代码如下(仅列了接口Shape及Circle 代码,Rectangle代码大致同Circle,故略): interface Shape { public boolean dispatch(int hiD, Object in): { class Circle imp1 emonts Shape { public float r public

文档评论(0)

1亿VIP精品文档

相关文档