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

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 表示有钱@Overridepublic void borrow(Credit credit) {allCredits.add(credit);}@Overridepublic void notifyCredits() {for (Credit credit : allCredits) {credit.takeMoney();}}}interface Credit {void takeMoney();}class WangWu implements Credit {@Overridepublic void takeMoney() {System.out.println("WangWu take money");}}class ZhaoSi implements Credit {@Overridepublic void takeMoney() {System.out.println("ZhaoSi take money");}}
