观察者模式

当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。

image.png

image.png

import java.util.ArrayList;
import java.util.List;

class ObserverPattern {
    public static void main(String[] args) {
        Debit zhangSan = new ZhangSan();
        zhangSan.borrow(new WangWu());
        zhangSan.borrow(new ZhaoSi());
        // state改变
        zhangSan.notifyCredits();
    }
}

interface Debit {
    void borrow(Credit credit);
    void notifyCredits();
}

class ZhangSan implements Debit {
    private List<Credit> allCredits = new ArrayList<>();
    private Integer state = 0; // 1 表示有钱

    @Override
    public void borrow(Credit credit) {
        allCredits.add(credit);
    }

    @Override
    public void notifyCredits() {
        for (Credit credit : allCredits) {
            credit.takeMoney();
        }
    }
}

interface Credit {
    void takeMoney();
}

class WangWu implements Credit {

    @Override
    public void takeMoney() {
        System.out.println("WangWu take money");
    }
}

class ZhaoSi implements Credit {

    @Override
    public void takeMoney() {
        System.out.println("ZhaoSi take money");
    }
}
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享