关于实现接口的代码冗余问题
现有一个类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有类似的办法吗?