设计模式-观察者模式
观察者模式(发布-订阅模式、模型-视图模式),属于对象行为方式: 解决场景: 当一个对象改变的时候,所有依赖它的对象都需要得到通知并且针对其改变而改变。 优缺点: 目标与观察者之间抽象耦合,使用了触发机制 但是依赖仍然有,如果目标的观察者(对象依赖)很多会影响效率 需要的对象: 目标:会发生改变的对象 观察者:依赖目标的对象 事件:发生的改变的抽象类 事件 - 观察者 目标 - 事件 java中有具体的观察者模式类: Observable和Observer 举例: 百变怪和武藏、小次郎 Ditto作为目标,WuZang和XiaoCiLang作为观察者(依赖)。当Ditto发生改变时,需要及时观察者及时做出改变 package com.zang.schema.observable.observer; import java.util.Observable; /** * java 原生观察者模式 * Ditto 百变怪 * 目标类 * @author Zhang Qiang * @Date 2019/8/29 17:44 */ public class Ditto extends Observable { private String transformation; public String getTransformation() { return transformation; }