怎么提高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)

相关推荐

  • Utools工具的使用方法

    技术Utools工具的使用方法本篇文章为大家展示了Utools工具的使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。这几天偶然间发现了一款电脑桌面工具,其功能简直令我欣喜若

    攻略 2021年10月28日
  • css3属性手册(css显示表格)

    技术css3中的表格属性是什么小编给大家分享一下css3中的表格属性是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    攻略 2021年12月19日
  • 关于计算机中使用补码运算

    技术关于计算机中使用补码运算 关于计算机中使用补码运算1. 原码、反码、补码简单介绍原码、反码、补码都是含有一个符号位的、对带符号数的二进制表示,对应于同一个真值。
    原码带符号位直接读出来就是真值。

    礼包 2021年12月6日
  • 如何使用Docker和Traefik搭建WordPress

    技术如何使用Docker和Traefik搭建WordPress这篇文章主要为大家展示了“如何使用Docker和Traefik搭建WordPress”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一

    攻略 2021年11月19日
  • 有志不在年高无志空长百岁,无志空活百岁上一句是什么

    技术有志不在年高无志空长百岁,无志空活百岁上一句是什么有志不在年高有志不在年高无志空长百岁,无志空活百岁出自《甘罗十二为使臣》 【解释】 意思是指只要有远大志向,就算年纪小也没事,一个没有远大志向的人,即便活到很大的岁数

    生活 2021年10月27日
  • html进度条代码(html进度条显示百分比)

    技术html5进度条的标签是哪个本篇内容主要讲解“html5进度条的标签是哪个”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5进度条的标签是哪个”吧!

    攻略 2021年12月15日