2

我想重构一些用 C++ 和一些 GUI 框架编写的 GUI 应用程序。

有一些对话框类:

Class MyDialogX : public LibraryBaseDialog { };
Class MyDialogY : public LibraryBaseDialog { };
X, Y – some name, there are several such similar classes

这些类用于 gui 的东西,也用于一些业务逻辑——这违反了 SRP 原则。

我想将这两个职责分开,我决定创建另一个处理业务逻辑的类。

现在我们有这样的东西:

Class MyDialogX : public LibraryBaseDialog
{
    BusinesLogic *pLogic;   // used to handle logic, called as a response to gui
    //    change, there is only one such object for all MyDialogX(Y) objects

    // ... some other code...

    // this method could be moved to constructor as well, only for 
    // short example here...
    void setLogic(BusinesLogic *p) { pLogic = p; }
}

这是进行这种重构的好方法吗?

也许有一些更好的选择?

假设:我不想将“businessLogic”对象作为单例。我无法更改 LibraryBaseDialog 类。

这个重构应该很小,所以我不想重新设计整个系统 J

我什至可以更进一步,创建一些其他类:

Class LogicHolder  // basic features related
{
    BusinesLogic *pLogic;  
}

现在 MyDialogX 也将从这个类继承:

Class MyDialogX : public LibraryBaseDialog, public LogocHolder
{ }

这样,在几个类似的 Dialog 类之间管理 pLogic 会更容易。

4

0 回答 0