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