gpt4 book ai didi

oop - 中介者与观察者面向对象设计模式

转载 作者:行者123 更新时间:2023-12-03 05:07:52 24 4
gpt4 key购买 nike

我一直在阅读 Gang Of Four ,为了解决我的一些问题,遇到了Mediator模式。

我之前在我的项目中使用过Observer来制作一些GUI应用程序。我有点困惑,因为我没有发现两者之间有很大区别。我浏览寻找差异,但找不到任何适合我的查询的答案。

有人可以帮助我通过一些清楚区分两者的好例子来区分两者吗?

最佳答案

观察者模式:定义对象之间的一对多依赖关系,以便当一个对象更改状态时,其所有依赖项都会收到通知并自动更新。

中介者模式:定义一个对象来封装一组对象如何交互。中介器通过防止对象显式地相互引用来促进松散耦合,并且它允许您独立地改变它们的交互。

来源:dofactory

示例:

观察者模式:A 类可以有零个或多个向其注册的 O 类型观察者。当 A 中的某些内容发生更改时,它会通知所有观察者。

中介者模式:您有一些 X 类的实例(或者甚至可能有几种不同的类型:X、Y 和 Z),并且它们希望彼此通信(但您不希望每个实例都相互显式引用),因此您创建一个中介类 M。X 的每个实例都有对 M 的共享实例的引用,通过它可以与 X 的其他实例(或 X、Y 和 Z)进行通信。

关于oop - 中介者与观察者面向对象设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9226479/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com