定义
观察者模式定义对象间一对多依赖关系,使得每当一个对象发生改变时,其依赖对象皆可得到通知并且自动更新。
类图
代码
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");
}
}