public class ObserverPattern {
public ObserverPattern() {
Teacher teacher = new Teacher();
Student student = new Student();
student.addObserver(teacher);
student.exam(80);
}
/**
* 被观察者
*/
class Student extends Observable {
String name = "WCY";
int score;
void exam(int score) {
setScore(score);
setChanged();
notifyObservers(getScore());
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}
/**
* 观察者
*/
class Teacher implements Observer {
@Override
public void update(Observable o, Object arg) {
String name = ((Student) o).getName();
int score = (int) arg;
System.out.println("name:" + name + ",score:" + score);
}
}
}
设计模式之观察者模式
最新推荐文章于 2024-08-29 17:15:49 发布