观察者模式

//观察者模式,多个对象观察某个状态的改变,比如说spring的事件监听事件

public interface HomeWork {
    public void change(String name);
}
public class Student01 implements HomeWork{
    @Override
    public void change(String name) {
        System.out.println("Student01 接收到作业"+name);
    }
}
public class Student02 implements HomeWork{
    @Override
    public void change(String name) {
        System.out.println("Student02 接收到作业"+name);

    }
}
public class Teacher {
    // 家庭作业
    private String homeworkName;
    //要通知的学生
    public List<HomeWork> arrayList =  new ArrayList<HomeWork>(2);

    public String getHomeworkName() {
        return homeworkName;
    }

    // 布置作业的时候通知学生
    public void setHomeworkName(String homeworkName) {
        for (HomeWork o : arrayList) {
            o.change(homeworkName);
        }

        this.homeworkName = homeworkName;
    }

    public List<HomeWork> getArrayList() {
        return arrayList;
    }

    public void setArrayList(List<HomeWork> arrayList) {
        this.arrayList = arrayList;
    }
}
Teacher teacher = new Teacher();
ArrayList<HomeWork> objects = new ArrayList<>();
objects.add(new Student01());
objects.add(new Student02());
teacher.setArrayList(objects);

teacher.setHomeworkName("语文");

 

posted @ 2023-03-20 09:42  sugarstar  阅读(11)  评论(0)    收藏  举报