Closed princeh23 closed 1 year ago
func (sub *Subject) Remove(observer IObserver){}中ob == observer的比较方法我认为不太合理并且存在bug,Observer1和Observer2中没有其他字段且都为{},导致remove中会删除所有观察者,进而导致panic。
改进:只要向ObserverX中添加成员变量即可解决,我统一提供了GetName()方法进行比较。
望采纳~
func (sub *Subject) Remove(observer IObserver){}中ob == observer的比较方法我认为不太合理并且存在bug,Observer1和Observer2中没有其他字段且都为{},导致remove中会删除所有观察者,进而导致panic。
改进:只要向ObserverX中添加成员变量即可解决,我统一提供了GetName()方法进行比较。
望采纳~