public interface Observer {
void update();
}
public class MotherObserver implements Observer {
private String action;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
@Override
public void update() {
System.out.println(action);
}
public class FatherObserver implements Observer {
private String action;
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
@Override
public void update() {
System.out.println(action);
}
}
import java.util.ArrayList;
import java.util.List;
public abstract class Subject {
//关注者列表
List list = new ArrayList<>();
public void add(Observer observer) {
list.add(observer);
}
public abstract void notifyObservers();
}
public class NotifySubject extends Subject {
@Override
public void notifyObservers() {
for (Observer observer :list){
observer.update();
}
}
}
public class MainTest {
public static void main(String[] args) {
System.out.println("孩子哭了");
NotifySubject subject = new NotifySubject();
MotherObserver motherObserver = new MotherObserver();
motherObserver.setAction("妈妈开始做饭");
FatherObserver fatherObserver = new FatherObserver();
fatherObserver.setAction("爸爸开始准备玩具");
subject.add(motherObserver);
subject.add(fatherObserver);
subject.notifyObservers();
}
}