observer

 

NewsPapers

public interface NewsPapers {

   

    public void add(Customers observer);

   

    public void remove(Customers observer);

   

    public void notifyObserver();

 

}

 

 

ConcreteNewsPapers

public class ConcreteNewsPapers implements NewsPapers {

   

    private Vector observerVector = new Vector();

 

    public void add(Customers observer) {

 

       System.out.println(" 添加一个订阅者 ");

       observerVector.add(observer);

    }

 

    public void notifyObserver() {

       // TODO Auto-generated method stub

       Enumeration em = observerVector.elements();

       while(em.hasMoreElements()){

          

           ((Customers)em.nextElement()).update();

          

       }

      

    }

 

    public void remove(Customers observer) {

       // TODO Auto-generated method stub

       System.out.println(" 删除一个订阅者 ");

       observerVector.remove(observer);

 

    }

 

}

 

Customers

public interface Customers {

 

    public void update();

}

 

Customers的实现类们:

public class ConcreteCustomer implements Customers {

 

    public void update() {

       // TODO Auto-generated method stub

       System.out.println(" I'm customer , notify!");

 

    }

 

}

 

public class ConcreteCustomerB implements Customers {

 

    public void update() {

       // TODO Auto-generated method stub

       System.out.println(" I'm customer b, notify!");

 

    }

 

}

测试类;

 

public class ObserverTest extends TestCase {

   

    public void test_adapter(){

       

       //主题

        NewsPapers news = new ConcreteNewsPapers();

        //观察者

        Customers customer = new ConcreteCustomer();

        Customers customerB = new ConcreteCustomerB();

        Customers customerC = new ConcreteCustomerC();

       

        news.add(customer);

        news.add(customerB);

       

        news.notifyObserver();

        //添加 c

        news.add(customerC);

       

        news.notifyObserver();

       

    }

 

}

 

测试结果:

 

添加一个订阅者

 添加一个订阅者

 I'm customer , notify!

 I'm customer b, notify!

 添加一个订阅者

 I'm customer , notify!

 I'm customer b, notify!

 I'm customer C, notify!

 

fj.pngobserver.jpg

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11134734/viewspace-531642/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/11134734/viewspace-531642/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值