法律在线

Go语言设计模式-观察者_科技频道_东方资讯

发布日期:2020-06-28 03:10   来源:未知   阅读:

观察者模式

观察者模式是一种行为设计模式。此模式允许一个实例(称为subject)将事件发布到其他多个实例(称为observer)。这些观察者订阅主题(在主题内部维护一个观察者列表),因此在主题发生任何更改时会收到事件通知。

举个例子。在购物网站上,可能会有顾客对某个缺货商品感兴趣。这个问题有三种解决方法:

客户定期检查该商品是否有货

网站向客户推荐其他商品

客户只订阅他感兴趣的商品,并在商品到货时得到通知。多个客户可以订阅同一产品。

第三种方法是最可行的,这就是观察者模式。观察者模式的主要组成部分是:

主题Subject:是发布事件的实例,提醒订阅者发生信息变动。

观察者Observer:是订阅主题的实例,通过事件得到信息变动的通知。

通常,先定义主题和观察者为接口,然后分别实现它们。

以下是代码和UML的对照关系:

以下是subject.go的代码:

Power by DedeCms