1.核心思路是针对接口编程,不是针对实现编程(实现编程代码臃肿且弹性差)

    2.定义一个通用接口,被通用类实现,观察者只需要继承通用类即可

    3.定义第二个通用接口,用于更新方法

    4.定义通用类实现通用接口以及第二个通用接口,完成其中的细节

    5.所有观察者继承通用类,观察者就已经被通知了