模式:
用处: 假设我们有一对多依赖关系的对象链, 当一个对象的状态发生改变时, 所有依赖于它的对象得到了通知并自动更新.
? 代码
主题类
- class Subject {
- private List<Object> objs = new ArrayList<>();
- private String state;
- public void setState(String state) {
- this.state = state;
- notify();
- }
- public void attach(Object obj) {
- this.objs.add(obj);
- }
- public void notify() {
- for(Object obj : objs) {
- obj.update();
- }
- }
- }
订阅了某主题的对象类
- class Object {
- private Subject subject;
- public Object(Subject subject) {
- this.subject = subject;
- this.subject.attach(this);
- }
- public void update() {
- System.out.println("update operation");
- }
- }
- public Test {
- public static void main(String[] args) {
- }
- }
来源: http://www.bubuko.com/infodetail-3016707.html