网易首页 > 网易号 > 正文 申请入驻

编程中用不好重载就别用!关于重载逼到人发疯的案例!

0
分享至

“重载”会逼疯一个程序员吗?会!当重载在代码中无处不在时,真的会让一个接手他人代码的程序员分分钟陷入崩溃!重载出现的本意是当一个函数的默认实现满足不了现实需求的时候,使用重‍载则可以直接打破函数原有逻辑或者在原有逻辑上追加逻辑,大大方便了程序的扩展性,但是,我们公司有一个“大牛”他的重载用法,我看了真的很难受!



先说下重载的用法,首先你得继承一个基类,这个基类中需要定义一个“虚方法”,大多数编程语言中,虚方法需要使用virtual关键字来装饰,然后继承这个基类的实体类需要重载这个虚方法,一般使用protected override关键字来声明重载。

当然,虚方法中你可以定义一些基础实现,也可以完全不用实现任何逻辑,但是,不实现任何逻辑的话,完全只为了让外部重载这种用法不建议,因为这样的话,你完全可以不用定义基类和虚方法,声明一个接口就完全符合你的要求了!

我们公司的“大牛”使用虚方法的原因就是他想在某些操作中统一去执行一些东西,比如说一些确定和取消按钮,当点击时需要关闭窗口或者页面,所以,但凡是按钮的确认和取消功能他都继承了含有虚方法的基类,然后直接调用重载方法去执行页面的关闭逻辑!

乍一看好像没什么毛病,基类的结构也很简单,里面有两个虚方法,一个确认方法,一个取消方法,每个需方法里面只加了一行代码,用来执行关闭窗口或者页面的委托(或者说逻辑)。

如果你直接调用虚方法的重载实现我都没什么话说,主要是在虚方法的基类基础上又加了两个转发函数,外部在调用虚方法时不直接调用,而是先调用两个转发函数,由转发函数去执行基类虚方法的实现!



他这么做的原因是因为代码框架中确定和取消按钮必须先实现代码框架定义的系统基类中的两个虚方法,分别是确定和取消。

这么一来,其实他自己定义的基类和系统基类中的虚方法其实就冲突了,而为了硬调用他自己写的基类,因此就有了上面所说的转发函数。

这两个转发函数是做什么用的呢?其实道理也很简单,因为代码框架要求确定和取消必须先实现系统函数,因此,他在自己写的基类中线定义了一个系统函数的实现,这样确定和取消按钮就可以直接调用这个实现。

但是,光调用实现不行,自己定义的虚方法也需要实现,因此,在这个实现的基础上,又调用了对应的虚方法,在前端层面,也就是直接调用了虚方法的重载!



是不是很绕?我在看这段代码的时候,其实我也被绕了,虽然道理很简单,但是这种“硬控”代码,我欣赏不来!

最主要的是,当我想要定位按钮的实现时,我只能定位到系统函数的实现,但是,因为系统函数的实现是被他写在虚方法的基类中的,因此,我在定位函数实现的时候首先会被定位到他自己实现的函数基类中。

如果此时你是第一次看他的代码,你会完全摸不着头脑,因为你到现在还没发现函数的真正实现直到我去仔细观赏他在基类里面写的代码,我才知道:哦,原来他是通过调用这个函数,然后去调用那个虚方法的实现的,所以,我应该去前端找这个名字的虚方法的对应的方法实现!



能明白我的纠结点吗?比如说我要干一件事情,A明明知道我需要干什么事情,当我去问A时,A说他按照流程,得先让我去B那过一下,由B把任务发布给我,然后我到了B那以后,B告诉我,我的任务就是去A那执行!

能明白吗?B的作用只是中转!且如果不经过B,A是不会告诉我具体应该执行什么东西的!

如果代码中到处都充斥着这种代码,那我在阅读代码时就需要来来回回折腾:先定位方法-定位到基类-在基类里面找方法的虚方法-回到原方法去找虚方法的实现!

除非你对这套代码很熟,否则一定会被代码给绕进去。

我想了很久,他这么干的意图是什么,最后,我没有看到任何好处,只有一点,那就是的确代码变得优雅了。

首先,我们公司做的都是非标自动化项目,排除一些常用的硬件、通讯协议、UI我们会封装成库外,其他的基本上每个项目的代码逻辑都不一样,而且,后续再动代码的可能性极小,即使是客户想要新增功能,也不会出现大改的情况。

反而是一个项目代码部署出去可能等第二次客户要求增加功能时,因为我们这个行业程序员流动性比较大,因此,到那个时候当初写这套代码的人可能都不在了!

因此,代码的可读性是最重要的,代码的可读性上来了,应对突发状况的反应时间也就会很快,也会减少客户那边停机的损失。

结语

所以,别扯什么设计模式,有些时候,代码优雅的能开香槟,也不及让一个刚毕业的程序员能看懂来得实际!而一般维护这些已经交付的项目的人,恰恰就是那些经验稍浅一些的程序员!

所以,我最后叹了一口气,因为我改变不了什么,代码本身是来解决问题的,但是有些时候代码写得太通俗易懂反而会被人说成“幼稚”、“不够优雅”。

声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
季后赛G1总结:仅活塞遭下克上+湖人赢9分最少 分差创历史第四高

季后赛G1总结:仅活塞遭下克上+湖人赢9分最少 分差创历史第四高

醉卧浮生
2026-04-20 12:05:52
广西钦州一女子后悔砌墙,多次举报自己违建,当事人:70多岁了上下楼吃力,想在楼后加装电梯,但因左右建了墙,根本无法施工

广西钦州一女子后悔砌墙,多次举报自己违建,当事人:70多岁了上下楼吃力,想在楼后加装电梯,但因左右建了墙,根本无法施工

观威海
2026-04-19 14:28:11
本科烂大街,硕士遍地走,博士很尴尬?上海交大今年招5000博士!

本科烂大街,硕士遍地走,博士很尴尬?上海交大今年招5000博士!

骅骏老师张
2026-04-19 07:49:40
1983年,陈云亲自批示:立即枪毙广东县委书记王仲,原因为何?

1983年,陈云亲自批示:立即枪毙广东县委书记王仲,原因为何?

莫地方
2026-04-20 09:30:18
章子怡这张照片真的有点吓到我了!就是后面那些墙壁

章子怡这张照片真的有点吓到我了!就是后面那些墙壁

动物奇奇怪怪
2026-04-20 03:22:27
山东省青岛市委常委、副市长王波被查

山东省青岛市委常委、副市长王波被查

新京报
2026-04-20 11:12:09
《我在故宫修文物》导演去世,享年43岁

《我在故宫修文物》导演去世,享年43岁

界面新闻
2026-04-20 12:37:14
人民日报对许家印称呼变了

人民日报对许家印称呼变了

来科点谱
2026-04-20 07:20:26
中国航司大面积取消日本航班,武汉已无直飞日本航班

中国航司大面积取消日本航班,武汉已无直飞日本航班

极目新闻
2026-04-19 19:55:25
亲戚一家五口旅游要求接待,咋拒绝?网友:直接表达的态度

亲戚一家五口旅游要求接待,咋拒绝?网友:直接表达的态度

带你感受人间冷暖
2026-04-19 23:11:39
认知存在严重缺陷,小米公司败了

认知存在严重缺陷,小米公司败了

浙江车网
2026-04-20 09:20:38
住了33年的房屋要被强拆还地,台湾妇人叫嚣:我是大日本帝国臣民

住了33年的房屋要被强拆还地,台湾妇人叫嚣:我是大日本帝国臣民

金牛传声
2026-04-19 12:27:48
伊朗军方:美军向伊朗货船开火,伊方发射无人机还击

伊朗军方:美军向伊朗货船开火,伊方发射无人机还击

界面新闻
2026-04-20 07:04:17
曝普京支持率连续6周下滑!为俄乌战争以来最低水平

曝普京支持率连续6周下滑!为俄乌战争以来最低水平

项鹏飞
2026-04-19 18:00:14
美军违反停火协议,公布扣押伊朗货船细节:海军陆战队员从直升机顺绳速降,登上伊朗货船

美军违反停火协议,公布扣押伊朗货船细节:海军陆战队员从直升机顺绳速降,登上伊朗货船

极目新闻
2026-04-20 14:37:21
国际油价飙涨7%,黄金白银、美股期指全线下挫,加密货币16万人爆仓,美军向伊朗商船开火

国际油价飙涨7%,黄金白银、美股期指全线下挫,加密货币16万人爆仓,美军向伊朗商船开火

21世纪经济报道
2026-04-20 06:46:08
梁家辉5封金像奖最佳男主角,台上流泪感谢妻子,台下嘴硬“那是演的”

梁家辉5封金像奖最佳男主角,台上流泪感谢妻子,台下嘴硬“那是演的”

红星新闻
2026-04-20 13:16:57
越南百亿高铁订单给德国,来华体验12小时高铁,背后算计太明显

越南百亿高铁订单给德国,来华体验12小时高铁,背后算计太明显

混沌录
2026-04-19 17:27:06
古装剧都是骗人的:真实的古代百姓餐桌,现代人看一眼就想吐

古装剧都是骗人的:真实的古代百姓餐桌,现代人看一眼就想吐

富贵说
2026-04-19 14:52:13
美国妹子崩溃大哭:借9.6万美元上大学,已还16.5万,还欠22万

美国妹子崩溃大哭:借9.6万美元上大学,已还16.5万,还欠22万

贱议你读史
2026-04-19 04:30:07
2026-04-20 15:55:00
程序员古耕 incentive-icons
程序员古耕
程序员、网文作家、自媒体人
603文章数 392关注度
往期回顾 全部

科技要闻

抛弃OpenAI,Anthropic为何成中国AI新偶像

头条要闻

拼多多等被罚近36亿:有人吞证据抗法 执法人员骨折

头条要闻

拼多多等被罚近36亿:有人吞证据抗法 执法人员骨折

体育要闻

阿森纳已拼尽全力,但你早干嘛去了...

娱乐要闻

鹿晗生日上热搜,被关晓彤撕下体面

财经要闻

月之暗面IPO迷局

汽车要闻

把天门山搬进厂?开仰望U8冲上45度坡的那刻 我腿软了

态度原创

本地
房产
手机
家居
公开课

本地新闻

12吨巧克力有难,全网化身超级侦探添乱

房产要闻

重磅!海口北站来了!多项信息曝光,过海时间将大幅缩短!

手机要闻

华为Pura 90 Pro Max长焦三项业界首发!防抖CIPA 7.0业界最高水准

家居要闻

自然慢调 慢享时光

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版