import java.util.ArrayList;
interface Show{
void show(String text);
}
interface Observer{
void update(String text);
}
interface Observable{
void registerObserver(Observer o);
void removeObserver(Observer o);
void notifyObservers();
}
class Myclass implements Observable{
ArrayList<Observer> students;
public Myclass() {
// TODO Auto-generated constructor stub
students = new ArrayList<>();
}
@Override
public void registerObserver(Observer o) {
// TODO Auto-generated method stub
this.students.add(o);
}
@Override
public void removeObserver(Observer o) {
// TODO Auto-generated method stub
int i = students.indexOf(o);
if(i >= 0)
students.remove(i);
}
@Override
public void notifyObservers() {
// TODO Auto-generated method stub
for (int i = 0; i < students.size(); i++) {
students.get(i).update(String.valueOf(i+1));
}
}
}
class Me implements Observer,Show {
Observable myObservable;
Me(Observable o){
myObservable = o;
myObservable.registerObserver(this);
}
@Override
public void update(String text) {
// TODO Auto-generated method stub
show(text);
}
@Override
public void show(String text) {
// TODO Auto-generated method stub
System.out.println("我是第"+text+"个");
}
}
public class Observers {
public static void main(String[] args) {
// TODO Auto-generated method stub
Observable myClass = new Myclass();
Observer me = new Me(myClass);
myClass.notifyObservers();
}
}
近期评论