Skip to content

observer

观察者模式 - 定义对象间的一对多依赖,状态改变时通知所有依赖对象。

函数签名

typescript
function createObserver<T>(): Subject<T>
function createPubSub<EventMap>(): PubSub

interface Subject<T> {
  attach: (observer: Observer<T>) => void
  detach: (observer: Observer<T>) => void
  notify: (data: T) => void
  getObserverCount: () => number
}

使用示例

typescript
import { createObserver } from 'zcw-shared/functions/patterns/observer'

const subject = createObserver<{value: number}>()

subject.attach({
  update: (data) => console.log('观察者1:', data.value)
})

subject.notify({ value: 100 })

观察者模式 - 一对多依赖通知!