[Java代码] //Subject.java 文件 public interface Subject {public void attach(Observer DocExplorer);public void detach(Observer DocExplorer);void notifyObservers(); } //Observer.java 文件 public interface Observer{void update( (1) ); } //OfficeDoc.java 文件 import java.util.*; public class OfficeDoc implements Subject(//OfficeDoc 类实现 Subject 接口private Vector ObserverVeetor=new java.util.Vector();//存储与OfficeDoc相关联的DocExplorer 对象public void attach(Observer observer){ //将某 DocExplorer 对象与OfficeDoc 相关联 ObserverVector.addElement(observer);}public void detach(Observer observer){ //解除某DocExplorer 对象与OfficeDoc的关联关系 ObserverVector.removeElement(observer);}public void notifyObservers(){//当OfficeDoc对象状态已发生变化时,通知所有的DocExplorer对象Enumeration enumeration= (2) ;while (enumeration.hasMoreElements()){ ((Observer)enumeration.nextElement()). (3) ;}}public Enumeration Observers(){ return ObserverVector.elements();}//其他公文类的属性和方法省略 } //DoeExplorer.java 文件 public class DocExplorer implements (4) {public void update( (5) ){ //更新DocExplorer自身的状态,代码省略} }