如何解决观察者模式 - 如何处理观察者和观察者对象的持久性
使用观察者模式,在应用程序的某个点有一个 Object A
,当它的状态改变时通知一些 Observers objects
。所以这是在使用应用程序时发生的:
-
Object A
已创建。 -
Observers objects
已创建并注册,以便在Object A
状态更改时收到通知。
但是当应用程序重新启动时,我再次需要这个 Object A
存在并且 Observers objects
被通知状态更改。我不知道这种情况通常是如何处理的。我可以在数据库中保留 Object A
和 Observers
,我也可以保留关系,然后使用 ORM
:
-
Object A
使用observers
从数据库中检索(使用ORM
)。 - 如果
Object A
发生更改,则它的observers
会收到通知并执行其操作。
上述解决方案意味着每次observers
的{{1}}注册/取消注册时,Obsect A
和Object A
之间的关系都应该持久更新。也意味着 Observers observers
和 equals
方法应该被覆盖,因为在注销 hashcode
时,我们从数据库中获取 observer
(因此它是一个新的 Object A
,并且Object
是新对象)所以我们使用状态而不是它的地址来识别它们。
其他解决方案可能是在应用程序初始化时将观察对象和观察者对象加载到内存中(并注册 Observers
)并将它们缓存在 observers
中。
哪种设计更好或更常用?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。