public interface Obverser { void update(String type);
}
public class Teacher implements Obverser { @Override public void update(String type) { System.out.println(type); } }
public interface Obverserable { void addObverser(Obverser obverser); void notifyObverser(String context); }
public class Student implements Obverserable{ private List<Obverser> obverserList=new ArrayList<>(); @Override public void addObverser(Obverser obverser) { obverserList.add(obverser); } @Override public void notifyObverser(String context) { for (Obverser o : obverserList) { o.update(context); } } }
public class TestWatch { public static void main(String[] args) { Teacher teacher=new Teacher(); Student student=new Student(); student.addObverser(teacher); student.notifyObverser("111"); } }