设计模式_观察者模式
先看个例子:Boss想要随时知道员工的心情是否变了?
定义接口员工行为接口【IStaff】,定义方法【moodChange】。
定义员工类【Staff】实现【IStaff】,属性只有【moodChanged】,实现【moodChange】方法。并且拥有有【Boss】对象

定义Boss行为接口【IBoss】,定义方法【deathGaze】。
定义【Boss】类实现【IBoss】。

执行代码:

执行结果:

问题:现在你有十个变态的BOSS,他们甚至做出的反应都不同?这就要用到观察者模式了。
定义观察者行为接口【IObserver】,定义方法【actionWhenObs】,Boss类实现【IObserver】。


定义被观察者行为接口【IObservable】,定义方法【addObserver】,【deleteObserver】,【notifyObserver】,员工类【Staff】实现【IObservable】。

执行结果:

总结:优雅,实在太优雅了。 实际上JDK中已经有这两个类了。不过在JDK9以后因为线程安全以及过于简单的事件模型等原因被弃用。
浙公网安备 33010602011771号