mohuishou / go-design-pattern

golang design pattern go 设计模式实现,包含 23 种常见的设计模式实现,同时这也是极客时间-设计模式之美 的笔记
https://lailin.xyz/post/go-design-pattern.html
2.04k stars 339 forks source link

fix: observer remove function bug #5

Closed princeh23 closed 1 year ago

princeh23 commented 1 year ago

func (sub *Subject) Remove(observer IObserver){}中ob == observer的比较方法我认为不太合理并且存在bug,Observer1和Observer2中没有其他字段且都为{},导致remove中会删除所有观察者,进而导致panic。

改进:只要向ObserverX中添加成员变量即可解决,我统一提供了GetName()方法进行比较。

望采纳~