java最基础的几个编程模板,Java中的模板“元编程”是个好主意吗?
发布日期:2021-06-24 15:01:40 浏览次数:3 分类:技术文章

本文共 888 字,大约阅读时间需要 2 分钟。

在一个相当大的项目中有一个源文件,它具有几个对性能极为敏感的功能(每秒被称为百万次)。实际上,先前的维护者决定编写一个函数的12个副本,每个副本的差别都很小,以节省在单个函数中检查条件的时间。

不幸的是,这意味着代码是要维护的PITA。我想删除所有重复的代码,只写一个模板。但是,Java语言不支持模板,我不确定泛型是否适合于此。

我目前的计划是写一个文件,该文件生成该函数的12个副本(实际上是一个只能使用的模板扩展器)。对于为什么必须以编程方式生成文件,我当然会提供很多解释。

我担心的是,这将导致将来的维护人员感到困惑,并且如果他们在修改文件后忘记重新生成文件,或者(如果更糟糕的话)他们以编程方式生成的文件进行修改,则可能会引入讨厌的错误。不幸的是,除了没有用C ++重写整个过程外,我看不到任何解决方法。

这种方法的好处是否大于缺点?我应该改为:

发挥性能优势,并使用单个可维护的功能。

添加有关为何必须重复执行该功能12次的说明,并应承担维护负担。

尝试将泛型用作模板(它们可能无法那样工作)。

大吼大叫的老维护者,使代码的性能取决于单个函数。

其他保持性能和可维护性的方法?

PS:由于该项目的设计不佳,对功能进行性能分析非常棘手……但是,这位前维护人员说服了我,性能下降是不可接受的。我认为他的意思是超过5%,尽管这完全是我的猜测。

也许我应该详细说明一下。这12份副本执行的任务非常相似,但差别很小。在整个函数中的不同地方存在差异,因此不幸的是,有很多很多条件语句。有效地有6种“操作模式”和2种“范例”(由我自己编造的词)。要使用该功能,可以指定操作的“模式”和“范例”。这从来都不是动态的。每段代码仅使用一种模式和范例。所有12个模式范例对都在应用程序中的某个位置使用。这些函数恰当地命名为func1到func12,偶数代表第二个范例,奇数代表第一个范例。

我知道,如果以可维护性为目标,那将是最糟糕的设计。但是它似乎“足够快”,并且这段代码已经有一段时间不需要任何更改了。也值得注意的是原始功能尚未删除(尽管据我所知这是无效代码) ,因此重构将很简单。

转载地址:https://blog.csdn.net/weixin_33520510/article/details/115543065 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:javascript php 混合,Javascript和PHP的混合编程
下一篇:php在前端的作用,php在前端中的作用

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月13日 23时53分13秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

SMARTFORMS打印后转存为PDF文件相关问题 2019-04-28
导出到PDF例子 2019-04-28
【转】SAP 条形码 2019-04-28
【MM模块】Contract 采购合同简介 2019-04-28
【Scratch-动作模块】碰到边缘就反弹和翻转方式 2019-04-28
【Scratch考级99图】图19-绘制特殊图形 2019-04-28
【Scratch考级99图】图20-绘制特殊图形 2019-04-28
Scratch判断奇偶数 电子学会图形化编程scratch等级考试三级真题答案2019-12 2019-04-28
【Scratch考级99图】图21-绘制特殊图形 2019-04-28
【Scratch考级99图】图22-绘制复杂图形 2019-04-28
电子学会图形化scratch编程等级考试三级真题答案解析(选择题)2020-5 2019-04-28
【Scratch考级99图】图23-绘制复杂图形 2019-04-28
scratch森林的一天 电子学会图形化scratch编程等级考试一级真题编程题答案2020-9 2019-04-28
小兔子带你轻松玩转Scratch 绘制创意复杂图形24 2019-04-28
电子学会图形化scratch编程等级考试三级真题答案解析(判断题)2020-5 2019-04-28
小兔子带你轻松玩转Scratch 绘制创意复杂图形25 2019-04-28
电子学会图形化scratch编程等级考试四级真题答案解析(选择题)2020-6 2019-04-28
小兔子带你轻松玩转Scratch 绘制创意复杂图形26 2019-04-28
电子学会图形化scratch编程等级考试四级真题答案解析(判断题)2020-6 2019-04-28
Scratch克隆猫游戏 电子学会图形化编程scratch等级考试三级真题答案2020-5 2019-04-28