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)