列举一个场景:下班之后回家,打开家门,开始做饭,之后睡觉 以上场景如果按照传统的开始方式就是封装一个用户类,里面有回家方法,打开门方法,做饭方法,睡觉方法,之后在外面依次调用. 假设你代码开发完了,这时需求变了,变为:下班之后回家,打开家门,开始做饭,运动,打游戏,之后睡觉 一段时间后又变了:打开家门,运动,打游戏,之后睡觉 随着需求变动,代码维护性约来越差,最后维护起来很困难 如果使用观察者模式就很好的解决了这个问题. 观察者模式:一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改