首页 > 社交 > 科普中国

观察者设计模式

常驻编辑 科普中国 2022-06-13 观察者   爸爸   玩具   妈妈   模式   孩子   列表
public interface Observer {
    void update();
}

public class MotherObserver implements Observer {

    private String action;

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    @Override
    public void update() {
        System.out.println(action);
    }

public class FatherObserver implements Observer {

    private String action;

    public String getAction() {
        return action;
    }

    public void setAction(String action) {
        this.action = action;
    }

    @Override
    public void update() {
        System.out.println(action);
    }
}

import java.util.ArrayList;
import java.util.List;

public abstract class Subject {
    //关注者列表
    List list = new ArrayList<>();

    public void add(Observer observer) {
        list.add(observer);
    }

    public abstract void notifyObservers();

}

public class NotifySubject extends Subject {

    @Override
    public void notifyObservers() {
        for (Observer observer :list){
            observer.update();
        }
    }
}

public class MainTest {
    public static void main(String[] args) {
        System.out.println("孩子哭了");
        NotifySubject subject = new NotifySubject();
        MotherObserver motherObserver = new MotherObserver();
        motherObserver.setAction("妈妈开始做饭");
        FatherObserver fatherObserver = new FatherObserver();
        fatherObserver.setAction("爸爸开始准备玩具");
        subject.add(motherObserver);
        subject.add(fatherObserver);

        subject.notifyObservers();

    }
}

相关阅读:

  • 古驰阿迪联名伞售价11000却不防水,客服解释:具有收藏价
  • 4月腾讯《王者荣耀》吸金2.74亿美元,重回全球手游畅销
  • 有点难懂的物理知识:速度是什么?
  • 我们看到的一切,可能只是大脑提前0.1秒做出的预测
  • 换个角度看年轻人不爱白酒
  • 失联超过一天后,NASA与美国月球计划卫星恢复联系
  • 为什么行星看起来比恒星亮?
  • 7月国民经济数据出炉:面对严峻的需求不足,下半年中国如
  • 流星会发出声音吗?天文学家说是的,会出声的
  • 黑洞内部到底是什么样的?让我们一起来一次黑洞之旅
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。