首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

观察者模式(Observer)事例

2012-09-14 
观察者模式(Observer)例子?public interface Subject{public void addObserver(Observer observer)public

观察者模式(Observer)例子

?

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订阅者:这是一个观察者!
?

热点排行