307观察者模式

77 阅读1分钟

定义

观察者模式定义对象间一对多依赖关系,使得每当一个对象发生改变时,其依赖对象皆可得到通知并且自动更新。

类图

图片1.png

代码

public class ObserverPattern {
    public static void main(String[] args) {
        Debit tom = new Tom();
        tom.borrow(new Jack());
        tom.borrow(new Peter());
        tom.notifyCredits();
    }

}
interface Debit{
    void borrow(Credit credit);
    void notifyCredits();
}
class Tom implements Debit{
    private List<Credit> allCredits = new ArrayList<>();
    @Override
    public void borrow(Credit credit) {
        allCredits.add(credit);
    }

    @Override
    public void notifyCredits() {
        allCredits.forEach(credit -> credit.takeMoney());

    }
}
interface Credit{
    void takeMoney();
}
class Jack implements Credit{
    @Override
    public void takeMoney() {
      System.out.println("jack, money");
    }
}
class Peter implements Credit{
    @Override
    public void takeMoney() {
        System.out.println("com.mxy.dp.Peter, money");
    }
}