如何正确通知逻辑层模型层的修改?

时间:2019-08-11 16:44:56

标签: model dao

我一直在寻找有关如何正确实现基于GUI的应用程序的几天。当前阻碍我前进的部分是如何通知逻辑层模型层中发生的修改。

即使我可能会使用Qt / C ++,但我仍在寻找关于什么是好的实现的一般想法。

在使用模型层时,我设想可以使用DAO作为示例从数据库中检索几个业务数据对象。问题是,如果两个不同的视图(它们各自的逻辑层)检索相同的数据库实例,它们仍然不会共享相同的业务数据对象实例,这意味着当一个视图将更新模型时,我将无法使用数据对象本身来通知其他视图。

我一直在考虑的解决方案是:

  • 赋予该角色以通知对该类的修改,该类负责将数据对象存储在数据库中以及从数据库中检索数据对象。

  • 使用基于id的参数单例模式,通过保留数据库实例池,这将使不同的视图真正共享相同的业务数据对象,从而能够相互通知。

  • 前面两种解决方案的混合,让对象负责通知其属性的修改,并让用于检索和存储对象的类负责通知创建并最终抑制对象。数据库。

为了避免任何XY问题,我要实现的目的是使两个不同的视图保持同步,同时避免复杂的意大利面条事件系统,或者例如能够实现将本地数据库与远程数据库同步的系统一种,并自动刷新所有视图,而无需告诉所有视图重新读取数据库(如果不需要)。

我想这是常见的问题,但我找不到有关如何正确解决它们的明确答案。

我希望我的问题很清楚,谢谢。

0 个答案:

没有答案