我在我的一次采访中被问到了这个问题。 可以说我有基类“A”。有四类“B”,“C”,“D”,“E”是从“A”派生的。现在我有一种在“D”和“E”类中很常见的方法。我可以写这种方法的最低限度是什么,只有类“D”和“E”可以使用它们。 如果我将它们写入基类,那么无类别的“B”和“C”类将可见。解决方案重复代码
Q
解决方案重复代码
1
A
回答
0
你得出一个中间类从一个说叫它为简单起见DECommon
这将有这个共同的方法D
和E
。接下来从中导出D
和E
。
class A {
}
class DECommon : public A {
public:
virtual void newMethodDE() {
// DO YOUR MAGIC HERE
}
}
class D : public DECommon {
}
class E : public DECommon {
}
因此d和E仍将保留是-一个关系为A,而新的共同方法逻辑将仅在DECommon
中间类一次实现。
+0
太棒了!好的方法... –
+0
很高兴你喜欢它,随时接受答案:) –
相关问题
- 1. 重复解决方案
- 2. 更好的解决方案重复代码,需要优雅
- 3. jQuery删除重复的代码 - 更简单的解决方案?
- 4. coffeescript和重复的代码。有解决方案吗?
- 5. VBA代码重复解决
- 6. 重复背包 - 数组解决方案
- 7. 重复记录的SQL解决方案
- 8. 代码Coveragein独立解决方案
- 9. ReSharper:修复解决方案
- 10. 重构解决方案文件夹到新解决方案
- 11. 迭代解决方案中的递归解决方案
- 12. Ruby解决方案替代.NET解决方案
- 13. AppendAllLines替代解决方案
- 14. 替代解决方案underscore.js
- 15. 替代的解决方案
- 16. 在Visual Studio解决方案中重新链接Xaml和代码
- 17. 跨多个解决方案重构共享代码
- 18. JQuery - 重新排列对象 - 最短的代码解决方案
- 19. 更改区域代码无需重建解决方案
- 20. Symfony2:在每个新控制器中重复代码的解决方案
- 21. 可重复使用的代码段的最大宽度解决方案
- 22. 重建解决方案与重建“ProjectName”
- 23. PHP json解码与解决方案
- 24. 在Visual Studio中构建解决方案,重建解决方案和清理解决方案的区别?
- 25. 解决方案来解决该问题的编码在此代码
- 26. 解决简化生成真正的解决方案并全面解决简化复杂的解决方案?
- 27. 开放源代码监控解决方案,无需代理商
- 28. VS 2010解决方案取决于另一个解决方案
- 29. @Before注释方法解决方案中的Mockito代码
- 30. Ehcache不复制 - (解决方案)
你可以把它放在包的私人范围内(以java的方式)。然后将D,E放入同一个包中,将B,C放入不同的包中。也可以引入kinda函数,它是一个独立的对象,并将其用作D和E类的成员。 – evgenii