Go设计模式

观察者模式

观察者模式 定义了一个NotifierObservers之间的一对多依赖关系。当Notifier改变其状态时,所有的Observers都会被通知到Events

这种模式可以在事件驱动的代码中使用。当代码的一部分必须对另一部分的更改做出反应时。

基本类型和接口
Event

事件类型

Observer

观察者接口

Notifier

这个interface有三个方法:

Register(Observer)Unregister(Observer)Notify(Event)

通知器接口

实现具体类型
ObserverObserver

观察者实现

NotifierNotifier

通知器实现

使用示例
main

主函数

输出将是

# Output
➜  go-patterns go run ./behavioral/observer
observer 1 recieved event 1
observer 2 recieved event 1
observer 1 recieved event 101
observer 2 recieved event 101
observer 1 recieved event 9999
observer 2 recieved event 9999
结论
Observer Patternevent-drivenNotifier

愉快的编码!

代码示例可以在我的GitHub仓库中找到pavel-fokin/go-patterns

本文最初发表于 https://pavelfokin.dev