我在C ++中实现了一种具有多种计算模式的算法,现在我发现我的类太庞大且难以维护,所以我想应用一些设计模式来重构它。但我在软件工程方面经验不足。非常感谢你,如果我能得到一些关于使用哪种设计模式以及如何处理它的想法或提示
我的算法运行如上图所示。有两个问题。
对于每个函数(f1(),f2(),f3(),f3S()
),我有三种不同的实现。所以现在头文件中有f1a(),f1b(),f1c(),f2a(),f2b(),f2c(),f3a()....
个共12个函数。
f3S()
可以替换f2()+f3()
,因此我称之为双向quick mode
和normal mode
我在考虑bridge pattern
,但a,b,c
实施和quick,normal
模式不能完全独立。我仍然需要实现每个f1a(),f1b()...
而不是f1(),f2()..
和a(),b()..
然后合并它们。
但是如果我想做dynamic binding
- class1 c = new QuickMode()
(我希望我使用正确的术语),我需要在Class1中放置抽象虚函数f2(),f3(),f3S()
,但是如果对象是一个Quick Mode
,但我称f2()
它肯定是错的,但它实际上有一个指针。
我很抱歉这篇长篇文章,我对OO编程的经验很少,而且已经困扰了我好几天了。非常感谢有人能给我一些想法。