观察者s、被观察对象持有许多观察者,遍历通知。
复制代码
public interface Observer {
public void observe(String name);
}
复制代码
public class SubjectObj {
private final List<Observer> observers=new ArrayList<>();
public void noticeAll(String s){
for (Observer ob:observers){
ob.observe(s);
}
}
public void addObserver(Observer o){
observers.add(o);
}
}
复制代码
public class Ob1 implements Observer {
@Override
public void observe(String name) {
System.out.println("ob1"+" "+name);
}
}
复制代码
public class Ob2 implements Observer {
@Override
public void observe(String name) {
System.out.println("ob2"+" "+name);
}
}
复制代码
public class Demo {
public static void main(String[] args) {
SubjectObj subjectObj=new SubjectObj();
subjectObj.addObserver(new Ob1());
subjectObj.addObserver(new Ob2());
subjectObj.noticeAll("alarm");
subjectObj.addObserver(name -> System.out.println("ob3"));
subjectObj.addObserver(name -> System.out.println("ob4"));
subjectObj.noticeAll("al");
}
}
复制代码