提高java代码可重用性的三个有利措施

如何提高代码重用性 java 提高代码重用性的三个措施 代码重用性 立即下载

本文介绍了三种修改现有代码提高其可重用性的方法,它们分别是:改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型。

措施一:改写类的实例方法

通过类继承实现代码重用不是精确的代码重用技术,因此它并不是最理想的代码重用机制。换句话说,如果不继承整个类的所有方法和数据成员,我们无法重用该类里面的单个方法。继承总是带来一些多余的方法和数据成员,它们总是使得重用类里面某个方法的代码复杂化。另外,派生类对父类的依赖关系也使得代码进一步复杂化:对父类的改动可能影响子类;修改父类或者子类中的任意一个类时,我们很难记得哪一个方法被子类覆盖、哪一个方法没有被子类覆盖;最后,子类中的覆盖方法是否要调用父类中的对应方法有时并不显而易见。

任何方法,只要它执行的是某个单一概念的任务,就其本身而言,它就应该是首选的可重用代码。为了重用这种代码,我们必须回归到面向过程的编程模式,把类的实例方法移出成为全局性的过程。为了提高这种过程的可重用性,过程代码应该象静态工具方法一样编写:它只能使用自己的输入参数,只能调用其他全局性的过程,不能使用任何非局部的变量。这种对外部依赖关系的限制简化了过程的应用,使得过程能够方便地用于任何地方。当然,由于这种组织方式总是使得代码具有更清晰的结构,即使是不考虑重用性的代码也同样能够从中获益。

在java中,方法不能脱离类而单独存在。为此,我们可以把相关的过程组织成为独立的类,并把这些过程定义为公用静态方法。

例如,对于下面这个类:

从类的名字ppolygon可以看出,该类所封装的过程主要与polygon类型的对象有关。名字前面的p表示该类的唯一目的是组织公用静态过程。在java中,类的名字以小写字母开头是一种非标准的做法,但象pploygon这样的类事实上并不提供普通java类的功能。也就是说,它并不代表着一类对象,它只是java语言组织代码的一种机制。

在上面这个例子中,改动代码的最终效果是使得应用polygon功能的客户代码不必再从polygon继承。polygon类的功能现在已经由ppolygon类以过程为单位提供。客户代码只使用自己需要的代码,无需关心polygon类中自己不需要的功能。但它并不意味着在这种新式过程化编程中类的作用有所削弱。恰恰相反,在组织和封装对象数据成员的过程中,类起到了不可或缺的作用,而且正如本文接下来所介绍的,类通过多重接口实现多态性的能力本身也带来了卓越的代码重用支持。然而,由于用实例方法封装代码功能并不是首选的代码重用手段,所以通过类继承达到代码重用和多态性支持也不是最理想的。

1 2 3 下一页>>

VisualSFM+MeshLab 三维重建全过程记录 VisualSFM+MeshLab 三维重建全过程记录,从下载到运行出结果,以及其中一些可能出现的小问题。通过这两个软件熟悉一下多目立体视觉重建的流程。 阅读详情

相关推荐

Bartender 2021破解版安装教程:手把手教你从下载到激活(附详细步骤图)

本文详细介绍了BarTender 2021专业版的安装与高效应用指南,从基础配置到高级条码设计,帮助用户快速掌握标签设计与打印技术。内容涵盖安装步骤、标签模板创建、数据连接与批量打印技巧,以及高级功能如安全策略与自动化集成,适合零售、物流、制造等行业用户提升工作效率。

p4q5r6s7t的博客 2659

如何提高软件的可重用性_如何使您的代码可重用

可重用代码不是通用代码Image Credits: Pixabay.com可重用的代码作为解决所有软件问题的一站式解决方案,是一个危险的神话。 让我解释一下原因。假设您正在编写软件库。 您脑中冒出一个好主意,可以创建可广泛使用的通用解决方案。 您可以疯狂地编写涵盖所有功能并适应所有场景的API。 每种可能的新方案,都将其添加到您的API中。 您的代码不成比例地增长。 但是从真正意义上讲它是通用的,...

weixin_39749501的博客 1092

[终于解决]Ubuntu14.04 32位安装移动网卡(0bda:b711)驱动8188gu tplink-WN726n

大致梳理一下问题解决的流程 首先,在台式机做了双系统,台式机只有一个网线接口,由于项目要求,需要占用网口传输数据,所以用之前买的tplink-WN726n免驱版2.0的移动网卡 【note】免驱版只能在Windows下安装使用,在Ubuntu系统中无法使用,所以,需要另辟蹊径。 找了很多资料,尝试很多方法,有的复杂有的简单,终于解决。 【思路】首先在Ubuntu系统中输入lsusb,查看是否检测到USB网卡设备。然后从Github中复制代码,构建,安装,然后modprobe一下,到前面那步还不行,就再来一步

瑞o 1万+

【软件工程习题(含参考答案)】面向对象章节

第一题: 面向对象设计应该遵循哪些准则? 简述每条准则的内容,并说明遵循这条准则的必要性。 答: 面向对象设计准则: 1、模块化;把程序整体划分成一个个独立命名且可独立访问的完成单个子功能的模块。采用模块化,软件结构清晰,不仅容易设计也容易阅读和理解,有利于软件开发工程的组织管理 2、抽象:抽出事物的本质特性,暂不考虑其细节,使设计从具体实现方法中超脱...

夜半少年的博客 1万+

AI应用安全 - Prompt注入攻击

随着大模型的爆火,各行各业都在使用大模型进行智能化改造。但是如何做一个可靠的大模型应用,就需要考虑各种安全问题。本文主要介绍一种常见的安全问题,即prompt注入攻击,并介绍一些防范手段。Prompt Injection Attack(提示注入攻击)是针对大型语言模型(LLM)的一种新兴安全威胁,攻击者通过精心构造的输入提示(prompt)来操纵模型行为,使其产生非预期输出或执行恶意操作。它主要包括两种注入方式,一是直接注入,而是间接注入。

sinat_28694519的博客 1932

SAP数据导入工具(LSMW) 超级详细教程(批量导入内部订单)

用户提了个需求,让我批量导入内部订单几百个内部订单。我本打算用写段ABAP 代码来调用 BAPI (BAPI_INTERNALORDER_CREATE)就可以了。但想到我很久没有用过LSMW 了,都快要忘记了。于是我采用LSMW的方式,完成了任务。并把过程记录下来,形成教程方便我以后回头查看,分享出来也希望对大家有帮助。

IT小职员 2万+

软件工程第四次作业 作业范围: 第九章至第十四章

第一题: 面向对象设计应该遵循哪些准则? 简述每条准则的内容,并说明遵循这条准则的必要性。 答:良好的面向对象程序设计风格,即包括传统的程序设计风格准则,也包括为适应面向对象方法所特有的概念(例如,继承性)而必须遵循的一些新准则。 提高可重用性: ① 提高方法的内聚; ② 减小方法的规模; ③ 保持方法的一致性; ④ 把策略与实现分开; ⑤ 全面覆盖; ⑥ 尽量不使用全局信息 ⑦ 利用继承机制...

qq_42468502的博客 6597

BGE-M3 文本情感分类实战:预训练模型微调,导出ONNX并测试

本文介绍了如何基于BGE-M3开源模型实现一个简单的二分类情感分析任务,展示了NLP中经典的“预训练 + 微调”范式。首先,加载预训练模型和分词器,并构建分类头整合到模型中。接着,进行数据预处理并构建DataLoader。然后,定义优化器、损失函数和训练循环,进行模型微调。微调过程中,可以选择基于[CLS] token的单特征提取或基于池化策略的多特征融合。最后,通过验证与推理评估模型性能,并导出ONNX模型以适应生产环境。BGE-M3在语义表征任务中表现优异,适合作为文本分类、语义搜索等下游任务的基础模型

大鹏的专栏 1404

如何提高软件的可重用性_对于组件的可重用性,大佬给出来6个建议

我们所有人都希望编写更少的代码,同时也要做更多的事情。为了实现这一点,我们构建了组件,以便可以多次重用它们。有些组件只需要基本的可重用性,而另一些则需要更复杂的重构技术,我们才能充分复用它。这里有6个不同级别的可重用性概念,大家先来体会体会,后续更新会一个一个的讲。1.模板化通过模板化,我们将一些重复性高的代码包装在其自己的组件中,而不是在周围到处复制和粘贴代码。当我们重用该组件(而不是...

weixin_42486083的博客 1830

CNN经典网络模型(二):AlexNet简介及代码实现(PyTorch超详细注释版)

CNN经典网络模型之一:AlexNet,本文包含其简介及代码,在PyTorch中实现,进行超详细注释,适合新生小白阅读学习~

qq_43307074的博客 2万+

【DRAM存储器十五】DDR介绍-关键技术之DLL和prefetch

详述DDR DLL和预取原理以及几个DDR相对初代SDRAM新增的时序参数

highman110的博客 4371

提高Java代码可重用性的三个措施

                            提高Java代码可重用性的三个措施                           (松下客 2001年05月19日 00:08)本文介绍了三种修改现有代码提高其可重用性的方法,它们分别是:改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型。 措施一:改写类的实例方法 通过类继承实现代码重用不是精确的代码重用技术,因此它并不是

iBreathe的专栏 3028

k8s中pod使用详解

k8s中Pod使用

congge 1万+

如何提高 Java 代码的可重用性

对于软件开发者而言,编写可重用的代码是一项基本而重要的技能。每位工程师都应掌握如何尽可能地提高代码的复用性。当前,一些开发人员可能会认为微服务的本质是小而高效,因此他们无需编写高质量代码。然而,即便是微服务,在变得庞大时,阅读和理解代码的时间成本也会迅速增加至编写时的十倍。

xuxian的博客 1196

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

如何提高Java代码的可重用性?

提高java代码可重用性有哪些方法措施,以下就讲解了三种关于提高java代码可重用性的措施,一起来了解一下吧~ 改写类的实例方法 通过类继承实现代码重用不是精确的代码重用技术,因此它并不是最理想的代码重用机制。继承总是带来一些多余的方法和数据成员,它们总是使得重用类里面某个方法的代码复杂化。 另外,派生类对父类的依赖关系也使得代码进一步复杂化:对父类的改动可能影响子类;修改父类或者子类中的任...

qq_36243386的博客 1554

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

最大化JAVA代码的可重用性

   最大化JAVA代码的可重用性——克服传统OO方法在重用方面的缺陷 摘要:不要放弃编写可重用代码的努力!本文介绍了三种对现有代码进行修改以提高其可重用性的方法。在程序员中似乎存在着一种日益普遍的观点,认为重用只是一个神话。或许是传统的面向对象编程方法中所存在的不足增加了重用的困难。本文介绍了从另外一种不同的途径使重用成为可能的三个步骤。第一步:将功能实现从类实例的方法中

mashy的专栏 1209

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

《最大化JAVA代码的可重用性》

作者:jeru email: jeru@163.net 最大化JAVA代码的可重用性 ??克服传统OO方法在重用方面的缺陷 出处: http://www.javaworld.com mashy 翻译 摘要:不要放弃编写可重用代码的努力!本文介绍了三种对现有代码进行修改以提高其可重用性的方法。 在程序员中似乎存在着一种日益普遍的观点,认为重用只是一个神话。或许是传统

puppyli的专栏 6863

关于能提高Java代码可重用性的三个措施

  在学习编程的过程中,我觉得不止要获得课本的知识,更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,本文主要讲述关于能提高Java代码可重用性的三个措施,更多Java专业知识,广州疯狂java培训为你讲解;   介绍了三种修改现有代码提高其可重用性的方法,它们分别是:改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型。   措施一:改写类的实例方法   通过类...

weixin_30405421的博客 213

java 重用性_强烈推荐:提高Java代码可重用性的三大措施

很多从事互联网行业的人在问我提高java代码可重用性有哪些方法措施,那今天我就给大家详细讲下提高java代码可重用性的措施吧,希望不懂的可以从中学习加以理解,懂的也可以加以巩固下这些知识点,我把提高java代码可重用性归纳了三大措施,下面就给大家分别来讲下这三大措施。第一大措施:选择最简单的参数接口类型描述参数对象要求的接口越简单,其他类实现该接口的机会就越大,由此,其对象能够作为参数使用的类也越...

weixin_39804631的博客 362

(转载)如何提高Java代码可重用性

如何提高Java代码可重用性 (转载)原文地址:http://doc.studyget.com/showdoc-52275.html 说明:本文介绍了三种修改现有代码提高其可重用性的方法,分别是:改写类的实例方法,把参数类型改成接口,选择最简单的参数接口类型     措施一:改写类的实例方法     通过类继承实现代码重用不是精确的代码重用技术,因此它并不是最理想的代码重用机

雷小虎的专栏 488

泛型:提升Java代码可重用性与类型安全性的利器

如果我们试图调用getMax方法时传递了一个与泛型参数不匹配的类型(如将Integer类型的数组传递给期望String类型的方法),编译器会给出相应的错误信息,从而避免了在运行时出现类型不匹配的情况。通过合理使用泛型,我们可以提高代码的可重用性,减少重复代码的出现,并在编译时捕获到类型不匹配的错误,从而避免了在运行时出现类型转换异常的情况。在上面的示例中,由于我们使用了泛型参数String来指定集合中元素的类型,因此编译器在编译时就能够检查到类型不匹配的错误,并给出相应的错误信息。

铭渊老黄 933
上一篇: 手机java聊天软件推荐:talkonaut和eqo
下一篇: sun spots:java开发人员的可编程设备
Labber
博客等级 码龄19年 26粉丝 1976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值