package com.ldy.designpattern.ObserverPattern;
import java.util.Observable;
public class Class extends Observable {
//学生数目
private int stuNumber ;
//新增科目
private String subName;
public Class(){
}
public void changeTheSub(int stuNumber,String subName){
this.stuNumber = stuNumber;
this.subName = subName;
notifyOthers();
}
public void notifyOthers(){
setChanged();
notifyObservers();
}
public int getStuNumber() {
return stuNumber;
}
public void setStuNumber(int stuNumber) {
this.stuNumber = stuNumber;
}
public String getSubName() {
return subName;
}
public void setSubName(String subName) {
this.subName = subName;
}
public static void main(String[] args) {
Class sub = new Class();
Student student = new Student(sub);
sub.changeTheSub(55,"Math");
}
}
package com.ldy.designpattern.ObserverPattern;
import java.util.Observable;
import java.util.Observer;
public class Student implements Observer {
//学生数目
private int stuNumber ;
//新增科目
private String subName;
private Observable subject;
public Student(Observable subject){
this.subject = subject;
subject.addObserver(this);
}
@Override
public void update(Observable o, Object arg) {
if (o instanceof Class){
Class s = (Class) o;
this.stuNumber = s.getStuNumber();
this.subName = s.getSubName();
display();
}
}
public void display() {
System.out.println( "科目:"+this.subName+",人数:"+this.stuNumber);
}
}