JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例
生活随笔
收集整理的這篇文章主要介紹了
JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
JDK中提供的實(shí)現(xiàn)
在 Java 中,通過 java.util.Observable 類和 java.util.Observer 接口定義了觀察者模式,只要實(shí)現(xiàn)它們的子類就可以編寫觀察者模式實(shí)例。
1,Observable類
Observable 類是抽象目標(biāo)類(被觀察者),它有一個(gè) Vector 集合成員變量,用于保存所有要通知的觀察者對(duì)象,下面來介紹它最重要的 3 個(gè)方法。
- void addObserver(Observer o) 方法:用于將新的觀察者對(duì)象添加到集合中。
- void notifyObservers(Object arg) 方法:調(diào)用集合中的所有觀察者對(duì)象的 update方法,通知它們數(shù)據(jù)發(fā)生改變。通常越晚加入集合的觀察者越先得到通知。
- void setChange() 方法:用來設(shè)置一個(gè) boolean 類型的內(nèi)部標(biāo)志,注明目標(biāo)對(duì)象發(fā)生了變化。當(dāng)它為true時(shí),notifyObservers() 才會(huì)通知觀察者。
2,Observer 接口
Observer 接口是抽象觀察者,它監(jiān)視目標(biāo)對(duì)象的變化,當(dāng)目標(biāo)對(duì)象發(fā)生變化時(shí),觀察者得到通知,并調(diào)用 update 方法,進(jìn)行相應(yīng)的工作。
【例】警察抓小偷
警察抓小偷也可以使用觀察者模式來實(shí)現(xiàn),警察是觀察者,小偷是被觀察者。代碼如下:
小偷是一個(gè)被觀察者,所以需要繼承Observable類
總結(jié)
以上是生活随笔為你收集整理的JDK中提供的实现——通过 java.util.Observable 类和 java.util.Observer 接口定义了观察者模式,只要实现它们的子类就可以编写观察者模式实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: actuator 微服务信息的完善
- 下一篇: JDK源码解析 迭代器模式在JAVA的很