设计模式笔记-观察者模式

观察者模式,有主题和观察对象,一旦主题发生变化,将通知观察者,然后观察者再做出相应操作。

public interface Observer {
        void update(int num);
}
public class DogObserver implements Observer {

        public void update(int num) {
              System. out.println("dog catch:" + num);

       }
}
public class CatObserver implements Observer {

        public void update(int num) {
              System. out.println("cat catch:" + num);
       }

}
public interface Subject {
        void registerObject(Observer o);
        void removeObserver(Observer o);
        void setChange(int num);
}
public class ConcreteSubject implements Subject {
       List obseverList = new ArrayList ();
       
        public void registerObject(Observer o) {
               obseverList.add(o);
       }

        public void removeObserver(Observer o) {
               obseverList.remove(o);
       }

        public void setChange(int num) {
               Iterator it = obseverList.iterator();
               while(it.hasNext()) {
                     ((Observer)it.next()).update(num);
              }
       }
}
public class Client {
        public static void main(String[] args) {
              Observer dog = new DogObserver();
              Observer cat = new CatObserver();
              
              Subject subject = new ConcreteSubject();
              subject. registerObject(dog);
              subject. registerObject(cat);
              
              subject.setChange(1);
              subject.setChange(2);
       }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值