0

我有一个项目,用户可以在其中构建不同的对象。这个应用程序有几个子窗口,其中一些可以修改一个全局对象。可以通过三种方式修改此类对象:

  1. 从数据库对象加载。(窗口1)
  2. 在窗体的帮助下修改它(按钮,lineedit ...)(window2)
  3. 借助显示此对象的图形窗口(例如使用鼠标)对其进行修改。(window3)

接下来是逻辑:如果我从数据库新对象加载,那么它应该更新 window2 和 window3 中的对象。如果我通过 window2 更改了对象,则应该更新 window3 中的对象,并且应该通知 window1 对象已更改。如果我通过 window3 更改了对象,则应该更新 window2 中的对象,并且应该通知 window1 对象已更改。

现在是下一个逻辑:对象存储在具有全局访问权限的类中(单例)。窗口通知是通过 qt 中的信号槽机制完成的。

有没有其他的设计方法?

4

1 回答 1

1

这已经足够好了。但是单例并不是那么好的模式。另一种方法是使其中一个窗口成为共享对象的创建者和所有者,并将指向该对象的指针指向其他窗口。之后,您可以像往常一样初始化信号槽连接。

于 2013-06-26T18:44:28.503 回答