如何重构这种情况

时间:2017-03-09 16:13:46

标签: c++ oop design-patterns refactoring virtual-functions

我在C ++中实现了一种具有多种计算模式的算法,现在我发现我的类太庞大且难以维护,所以我想应用一些设计模式来重构它。但我在软件工程方面经验不足。非常感谢你,如果我能得到一些关于使用哪种设计模式以及如何处理它的想法或提示enter image description here

我的算法运行如上图所示。有两个问题。

  1. 对于每个函数(f1(),f2(),f3(),f3S()),我有三种不同的实现。所以现在头文件中有f1a(),f1b(),f1c(),f2a(),f2b(),f2c(),f3a()....个共12个函数。

  2. f3S()可以替换f2()+f3(),因此我称之为双向quick modenormal mode

  3. 我在考虑bridge pattern,但a,b,c实施和quick,normal模式不能完全独立。我仍然需要实现每个f1a(),f1b()...而不是f1(),f2()..a(),b()..然后合并它们。

    我也在考虑这样的结构(省略了一些部分) enter image description here

    但是如果我想做dynamic binding - class1 c = new QuickMode()(我希望我使用正确的术语),我需要在Class1中放置抽象虚函数f2(),f3(),f3S(),但是如果对象是一个Quick Mode,但我称f2()它肯定是错的,但它实际上有一个指针。

    我很抱歉这篇长篇文章,我对OO编程的经验很少,而且已经困扰了我好几天了。非常感谢有人能给我一些想法。

0 个答案:

没有答案