国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java與模式 觀察者模式Observer Pattern

2019-11-17 04:17:56
字體:
來源:轉載
供稿:網友

觀察者模式又叫作發布-訂閱模式(publish-subscribe),模型-視圖(model-view)模式,源-監聽者(source-listener)模式,或者從屬者(dependents)模觀察者模式定義了一種一對多的依賴關系,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態上發生改變時,會通知所有的觀察者對象,使他們能夠自動更新自己。

實現類圖:

java提供了觀察者模式的相關類:

java.util.observer

java.util.observable

應用類圖如下:

其中需要用戶自己實現Watched類和Watcher類。

Client應用代碼如下:

 

public class Client

{

static PRivate Watched watched;

static private Observer watcher;

 

    public static void main(String[] args)

    {

watched = new Watched();

 

        watcher = new Watcher(watched);

 

        watched.changeData("In C, we create bugs.");

        watched.changeData("In Java, we inherit bugs.");

        watched.changeData("In Java, we inherit bugs.");

        watched.changeData("In Visual Basic, we visualize bugs.");

    }

}

 

大家要注意,觀察者模式是給觀察對象設置觀察者,而不是給觀察者設定觀察對象。故觀察對象中需要有個Container存放觀察者。但是上面應用為什么在構造觀察者時給了一個觀察對象參數呢?而不是把觀察者作為參數賦給觀察對象?

watcher = new Watcher(watched);

實際上你也可以構造一個沒有參數的觀察者,然后把這個觀察者加入觀察對象中。addObserver(o:Observer)

這里用了一個的編程技巧,在觀察者的構造方法中調用了此方法。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 扬州市| 德庆县| 洞头县| 全州县| 韶山市| 璧山县| 桂阳县| 万安县| 唐山市| 抚松县| 辽宁省| 潢川县| 曲靖市| 德江县| 浦北县| 宝鸡市| 青川县| 徐汇区| 玛曲县| 潜江市| 昌图县| 应城市| 房产| 鱼台县| 如东县| 通江县| 浑源县| 安溪县| 沁阳市| 宁远县| 兴国县| 枣庄市| 于都县| 米泉市| 惠州市| 台湾省| 望都县| 普兰店市| 义马市| 杭锦旗| 陆河县|