观察者模式学习记录

    科技2025-10-13  5

    //观察者模式 //定义了对象之间的一对多以来,让多个观察者对象舰艇某一个主题对象,党主题对象发生变化时,它的所有依赖者都会收到通知并更新 //如Android中的ListView RecycleView点击事件 //优点 1.符合开闭原则 2.可以在运行时就建立对象之间的关系

     

     

    import java.util.ArrayList; import java.util.List; public class Observe { //观察者模式 //定义了对象之间的一对多以来,让多个观察者对象舰艇某一个主题对象,党主题对象发生变化时,它的所有依赖者都会收到通知并更新 //如Android中的点击事件 //优点 1.符合开闭原则 2.可以在运行时就建立对象之间的关系 public static void main(String[] args) { Subject subject = new Subject(); Task1 task1 = new Task1(); Task2 task2 = new Task2(); subject.addObserver(task1); subject.addObserver(task2); subject.notifyObserver("task1 and task2"); subject.removeObserver(task1); subject.removeObserver(task2); subject.notifyObserver("task1 and task2"); } } class Subject{ //容器 add remove private List<Observer> containers = new ArrayList<>(); public void addObserver(Observer observer){ containers.add(observer); } public void removeObserver(Observer observer){ containers.remove(observer); } //数据通知 public void notifyObserver(Object observer){ for (Observer data:containers) data.update(observer); } } interface Observer{ void update(Object object); } class Task1 implements Observer{ @Override public void update(Object object) { System.out.println("Task1 received:" + object); } } class Task2 implements Observer{ @Override public void update(Object object) { System.out.println("Task2 received:" + object); } }

     

    Processed: 0.009, SQL: 8