Go设计模式
观察者模式
观察者模式 定义了一个Notifier和Observers之间的一对多依赖关系。当Notifier改变其状态时,所有的Observers都会被通知到Events。
这种模式可以在事件驱动的代码中使用。当代码的一部分必须对另一部分的更改做出反应时。
基本类型和接口
我们将从为Event
定义type开始。
事件类型
下一步是为Observer
编写interface。
观察者接口
第三步是实现Notifier
的interface。
这个interface有三个方法:
Register(Observer)
Unregister(Observer)
Notify(Event)
通知器接口
实现具体类型
现在让我们使用我们的Observer
接口实现具体的Observer
。
观察者实现
下一步是为我们的Notifier
接口定义Notifier
。
通知器实现
使用示例
将所有内容放在一起,编写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 Pattern
并不是一项困难的任务,它通常在event-driven
中实现。在这些系统中,Notifier
通常被称为“事件流”。
愉快的编码!
代码示例可以在我的GitHub仓库中找到pavel-fokin/go-patterns。
本文最初发表于 https://pavelfokin.dev。
译自:https://medium.com/mindware-engineering/how-to-implement-observer-pattern-in-go-621365ae8d03
评论(0)