public interface Subject { public void addObserver(Observer observer); public void removeObserver(Observer observer); public void notifyObservers(); public void notifyObservers(String blog); }
public interface Observer { public void update(String blog); }
import java.util.ArrayList; import java.util.List; import com.huawei.observer.inter.Observer; import com.huawei.observer.inter.Subject; public class Blogger implements Subject { private List<Observer> observers; private String blog; public Blogger() { observers=new ArrayList<Observer>(); } public void addObserver(Observer observer) { observers.add(observer); } public void removeObserver(Observer observer) { observers.remove(observer); } public void notifyObservers() { for(Observer ob:observers) { ob.update(blog); } } public void notifyObservers(String blog) { this.blog=blog; notifyObservers(); } public void writeNewBlog(String blog) { this.blog=blog; notifyObservers(); } }
import com.huawei.observer.inter.Observer; /** * 邮件订阅者 * <一句话功能简述> * <功能详细描述> * * @author gKF33650 * @version [版本号, 2010-10-25] * @see [相关类/方法] * @since [产品/模块版本] */ public class EmailSubscriber implements Observer { public void update(String blog) { System.out.println("发送电子邮件:"+blog); } }
import com.huawei.observer.inter.Observer; /** * RSS订阅者 * <一句话功能简述> * <功能详细描述> * * @author gKF33650 * @version [版本号, 2010-10-25] * @see [相关类/方法] * @since [产品/模块版本] */ public class RssSubscriber implements Observer { /** * RSS订阅者 * @param blog */ public void update(String email) { System.out.println("RSS订阅者:"+email); } }
import com.huawei.observer.impl.Blogger; import com.huawei.observer.impl.EmailSubscriber; import com.huawei.observer.impl.RssSubscriber; import com.huawei.observer.inter.Observer; import com.huawei.observer.inter.Subject; public class Test { public static void main(String[] args) { Subject sub=new Blogger(); //创建邮件订阅者 Observer obemail=new EmailSubscriber(); sub.addObserver(obemail); //创建RSS订阅者 Observer obrss=new RssSubscriber(); sub.addObserver(obrss); sub.notifyObservers("这是一个观察者!"); } }
执行结果: 发送电子邮件:这是一个观察者! RSS订阅者:这是一个观察者!