首页
Preview

如何在 Go 中实现观察者模式

Go设计模式

观察者模式

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

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

基本类型和接口

我们将从为Event定义type开始。

事件类型

下一步是为Observer编写interface

观察者接口

第三步是实现Notifierinterface

这个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

版权声明:本文内容由TeHub注册用户自发贡献,版权归原作者所有,TeHub社区不拥有其著作权,亦不承担相应法律责任。 如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

点赞(0)
收藏(0)
菜鸟一只
你就是个黄焖鸡,又黄又闷又垃圾。

评论(0)

添加评论