interface Subject {//通知人void setAction(String action);void attach(Observer observer);void detach(Observer observer);void notifyALL();}interface Observer {//要通知的对象,在接收通知后做出相应的改变void update();}class Boss implements Subject {private List<Observer> list = new LinkedList<>();@Overridepublic void setAction(String action) {System.out.println(action);}@Overridepublic void attach(Observer observer) {list.add(observer);}@Overridepublic void detach(Observer observer) {list.remove(observer);}@Overridepublic void notifyALL() {for (Observer o : list) {o.update();}}}//Secretary类与Boss类类似class Secretary implements Subject {@Overridepublic void setAction(String action) {System.out.println(action);}@Overridepublic void attach(Observer observer) {}@Overridepublic void detach(Observer observer) {}@Overridepublic void notifyALL() {}}//接收通知的人class Watcher implements Observer {private String name;private Subject subject;public Watcher(String name, Subject subject) {this.name = name;this.subject = subject;}@Overridepublic void update() {//更新操作System.out.println(name + "关闭B站,继续工作");}}class NBAfans implements Observer {private String name;private Subject subject;public NBAfans(String name, Subject subject) {this.name = name;this.subject = subject;}@Overridepublic void update() {System.out.println(name + "关闭NBA直播,继续工作");}public static void main(String[] args) {Boss boss = new Boss();Watcher watcher = new Watcher("Zhangsan", boss);NBAfans fans = new NBAfans("Lisi", boss);boss.attach(watcher);boss.attach(fans);boss.setAction("老板回来了!");boss.notifyALL();}}
200字范文,内容丰富有趣,生活中的好帮手!