观察者模式
今天总结一下在工作遇到的观察者模式的实现方式。谈谈自己的理解
观察者模式又叫做发布-订阅模式。当一个事件发生需要通知给别的实体的时候,就可以使用观察模式来实现。这里需要被通知的实体就叫做观察者。
类图
说明
observer:是观察者基类,里面的handle函数用来实现收到通知之后要做的处理。
observer1和observer2是具体的观察者,需要根据实际情况,重写handle。
obseverSubject:管理所有的观察者。observer1和observer2想要订阅的时候,将自己(this)add到观察者队列(all_observers)中,不想订阅的时候调用delete。obseverSubject在notify中遍历每个观察者,并调用他们的handle。
eventManager:管理一个obseverSubject,当事件发生的时候,调用obseverSubject的notify进行通知。