public interface Observers {
void update(String msg);
}
public interface Observerable {
public void registerObserver(Observers o);
public void removeObserver(Observers o);
public void notifyObserver(String msg);
}
public class MyObserverable implements Observerable {
private List<Observers> list;
MyObserverable() {
list = new ArrayList<>();
}
@Override
public void registerObserver(Observers o) {
list.add(o);
}
@Override
public void removeObserver(Observers o) {
list.remove(o);
}
@Override
public void notifyObserver(String msg) {
for (Observers observer : list) {
observer.update(msg);
}
}
}
public class AMyObserverable implements Observers {
@Override
public void update(String msg) {
System.out.println("=====msg==" + msg);
}
}
public class Test {
public static void main(String[] args) {
MyObserverable myObserverable=new MyObserverable();
Observers test1=new AMyObserverable();
Observers test2=new AMyObserverable();
Observers test3=new AMyObserverable();
Observers test4=new AMyObserverable();
myObserverable.registerObserver(test1);
myObserverable.registerObserver(test2);
myObserverable.registerObserver(test3);
myObserverable.registerObserver(test4);
myObserverable.notifyObserver("main函数");
}
}