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

Model 如何正确地通知逻辑层模型层中的修改?,model,dao,Model,Dao,几天来,我一直在研究如何正确实现基于GUI的应用程序。当前阻碍我的部分是如何通知逻辑层模型层中发生的修改 尽管我可能会使用Qt/C++实现它,但我更希望了解什么是一个好的实现 当谈到使用模型层时,我设想可以使用DAO从数据库检索几个业务数据对象。问题是,如果两个不同的视图(它们各自的逻辑层)检索相同的数据库实例,它们仍然不会共享相同的业务数据对象实例,这意味着当一个视图更新模型时,我不能使用数据对象本身通知另一个视图 我一直在考虑的解决方案是: 赋予角色以通知对负责在数据库中存储和检索数据对象

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

尽管我可能会使用Qt/C++实现它,但我更希望了解什么是一个好的实现

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

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

  • 赋予角色以通知对负责在数据库中存储和检索数据对象的类的修改

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

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

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

我想这些都是常见的问题,但我找不到一个明确的答案来正确解决它们

我希望我的问题足够清楚,提前谢谢