怎么提高java代码的重用性

技术怎么提高java代码的重用性本篇内容主要讲解“怎么提高java代码的重用性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么提高java代码的重用性”吧!一、改写类的实例

本文主要解释如何提高java代码的可重用性。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习“如何提高java代码的可重用性”!

一、改写类的实例方法

通过类继承实现代码重用并不是一种精确的代码重用技术,因此不是最理想的代码重用机制。继承总是带来一些冗余的方法和数据成员,这总是使在类中重用方法的代码复杂化。

此外,派生类对父类的依赖使代码更加复杂:对父类的更改可能会影响子类;当修改父类或子类中的任何类时,很难记住子类覆盖了哪个方法,子类没有覆盖哪个方法。最后,子类中的重写方法是否调用父类中的相应方法有时并不明显。

任何方法,只要它执行单个概念的任务,就应该是首选的可重用代码本身。为了重用这类代码,我们必须回到面向过程的编程模式,将类的实例方法移出全局过程。

为了提高这个流程的可重用性,流程代码应该像静态工具方法一样编写:只能使用自己的输入参数,只能调用其他全局流程,不能使用任何非局部变量。这种对外部依赖的限制简化了流程的应用,并使流程可以方便地在任何地方使用。

当然,因为这种组织方式总是会让代码有更清晰的结构,即使是没有考虑复用性的代码也能从中受益。

在Java中,方法不能独立于类而存在。因此,我们可以将相关的流程组织成独立的类,并将这些流程定义为公共静态方法。类在组织和封装对象数据成员的过程中起着不可或缺的作用,类通过多个接口实现多态性的能力本身也带来了优秀的代码重用支持。

多边形类{ public int GetPerimeter()}.} public boolean isConvex(){ 0.}公共布尔contains Point(p Point){ 0.}}我们可以重写为:class polygon { public int get period(){ return p polygon。计算周长(这个);} public boolean is convex(){ return ppolygon . is convex(this);} public boolean contains Point(Point p){ return ppolygon . contains Point(this,p);}}其中,PPolygon为:p类多边形{静态公共int计算周长(多边形多边形){多边形.}静态公共布尔isconvex(多边形多边形多边形){ 0.}静态公共booleancontainsPoint(多边形多边形,点p){ 0.}}

二、选择最简单的参数接口类型

描述参数对象所需的接口越简单,其他类实现该接口的机会就越大,因此,其对象可以用作参数的类就越多。从下面的例子可以很容易地看出这一点:

静态公共布尔值重叠(窗口窗口1,窗口窗口2){ 0.}

此方法用于检查两个窗口是否重叠。如果这种方法只需要从参数中获得两个窗口的直角坐标,那么相应地简化这两个参数是更好的选择。有时候,接口中描述参数需求的方法可能太多了。

此时,我们应该在全局命名空间中定义一个新的公共接口,供面临相同问题的其他代码重用。当我们需要在C语言中使用像函数指针这样的参数时,创建唯一的接口描述参数需求是最好的选择。例如,假设有以下过程:

静态公共无效排序(列表列表,排序比较比较).}

此方法使用参数中提供的比较对象comp,通过比较给定列表中的对象来对列表进行排序。comp对象排序的唯一要求是调用一个方法进行比较,因此SortComparison接口不能在其他地方重用。

三、把参数类型改成接口

在面向对象编程中,代码重用的真正意义在于通过接口参数类型使用多态性,而不是类继承。我们通过编程接口而不是类来达到代码重用的目的。如果一个方法的所有参数都是对一些已知接口的引用,那么这个方法可以操作一些对象,这些对象的类甚至在我们编写方法的代码时都不存在。从技术上讲,可以重用的是方法,而不是传递给方法的对象。

例如,让我们假设有这样一种方法:

静态公共布尔区域重叠(集合方向){ 0.}

此方法用于检查给定集合中的任何矩形对象是否重叠。在这个方法内部,当我们通过循环依次访问集合中的每个对象时,如果我们不能使对象转换成像矩形这样的接口类型,我们如何访问对象的矩形区域?唯一的选择是让对象强制转换其唯一的类形式,这意味着方法必须事先知道它操作的对象类型,这样方法的重用就仅限于那些对象类型。

至此,相信大家对“如何提高java代码的可重用性”有了更深的理解,让我们一起来实践吧!这是网站。更多相关内容,可以去相关渠道查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/108885.html

(0)

相关推荐

  • 常用的gis计算方法有哪些

    技术常用的gis计算方法有哪些这篇文章主要为大家展示了“常用的gis计算方法有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“常用的gis计算方法有哪些”这篇文章吧。在系统

    攻略 2021年12月1日
  • 压测时cpu上不去是代码问题吗(怎么用指令cpu压力测试)

    技术cpu测压shell脚本是什么本篇内容介绍了“cpu测压shell脚本是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有

    攻略 2021年12月17日
  • C#序列号的设计不重复的实现方法是什么

    技术C#序列号的设计不重复的实现方法是什么这篇文章主要介绍“C#序列号的设计不重复的实现方法是什么”,在日常操作中,相信很多人在C#序列号的设计不重复的实现方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操

    攻略 2021年11月26日
  • 怎样可以,和平精英怎么才能变厉害

    技术怎样可以,和平精英怎么才能变厉害大家好怎样可以!这里是爱分享的零助攻!很高兴回答您的问题!和平精英怎么样变厉害?可以说需要具备的条件太多了。第一:能力问题能力又分先天和后天,有的人天生就是玩游戏的好手,接受能力和适应

    生活 2021年10月21日
  • vue3中watch和watchEffect怎么使用

    技术vue3中watch和watchEffect怎么使用这篇文章主要讲解了“vue3中watch和watchEffect怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学

    攻略 2021年11月30日
  • 兼职翻译,英语兼职翻译一般都什么水平

    技术兼职翻译,英语兼职翻译一般都什么水平之前在公司上班的时候兼职翻译,公司的兼职遍布各行各业,其中有个很厉害的公务员兼职,每个月做稿量10万+,甩开一片专职译员。提高英语能力方法和资料都太多了,具体到个人就是只有不断的练

    2021年10月30日