我在我的一次採訪中被問到了這個問題。 可以說我有基類「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