关于实现接口的代码冗余问题

wglxxx wglxxx 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
现有一个类CA,及其100个子类CA1~CA100,每个类的规模一般千行级别
现有一个类CB,及其100个子类CB1~CB100,每个类的规模一般千行级别

由于需要为CA50~CA100以及CB50~CB100增加同样的10个功能,这些功能对CA,CB其他子类没有意义,
而且这10个功能已经由10个类CE1~CE10实现了,于是将CE1~CE10提取接口I1~I10,并让CA50~CA100以及CB50~CB100
增加实现该接口,即(CB50~CB100同样)
CA50~CA100 implements I1~I10 {
private CE1~CE10;
I1.M1(){
CE1.M1();
}
。。。
}

问题1:上面方法造成CA50~CA100以及CB50~CB100每个类增加完全相同的数百行代码(不包括注释),共数万行
问题2:由于CE1~CE10功能修改,不得不增减接口I1~I10的方法,导致CA50~CA100以及CB50~CB100也必须重新修改一遍

有没有较为简单的方法或自动化工具解决上面两个问题?
.net好像有implements关键字,能通过将接口的实现委托给类成员而完美解决上述问题,java有类似的办法吗?
...全文

相关推荐

C#编程实践:从继承与接口实现中提炼抽象类

本文基于《Programming in C# with Microsoft® Visual Studio® 2010》书籍内容,详细探讨了在C#中如何通过继承和接口实现来提炼出抽象类。文章通过具体的编程实践,展示了如何将具有共同功能的类中的重复代码抽象出来,以减少代码冗余,提高代码复用性,并通过实例演示了如何使用抽象类来优化代码结构。

滚菩提哦呢

全球检查台纸市场稳健增长:高频诊疗需求、产品升级与医疗供应链新机会.docx

全球检查台纸市场稳健增长:高频诊疗需求、产品升级与医疗供应链新机会

行业报告QY

超音速扩散器空气动力学优化的MATLAB代码.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

海神之光

数字化转型最后一公里:AI如何打通企业技术需求对接瓶颈.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

guang告通系统源码包 霸屏系统源码带教学有演示

只需要有对方vx号或者电话号 即可完成精准投放任务到对方朋友圈视频号公众号小程序 以及腾讯旗下所有应用所有广gao位中霸屏展示反复触达客户意向不浪费一点宝光 演示站:https://ad.jitutu.cn/ 演示账号:18877777777 密码:244466666

2601_95579407
评论 1
收藏 已收藏
分享
返回顶部
wglxxx
Java 51,407 成员 86,128 内容