亚洲天堂一级片-亚洲天堂三区-亚洲天堂久久精品成人-亚洲天堂毛片-久久国产欧美日韩高清专区-久久国产欧美日韩精品免费

北京北大青鳥學校講解java觀察者設計模式之角色

北京北大青鳥學校學術部老師介紹,在觀察者模式里有以下角色:

抽象主題(Subject)角色:北京北大青鳥學校老師介紹,主題角色把所有的觀察者對象的引用保存在一個列表里;每個主題都可以有任何數量的觀察者。主題提供一個接口可以加上或撤銷觀察者對象;主題角色又叫做抽象被觀察者(Observable)角色; 可以用一個抽象類或者一個接口實現;在具體的情況下也不排除使用具體類實現。

北大青鳥學校

抽象觀察者(Observer)角色:為所有的具體觀察者定義一個接口,在得到通知時更新自己; 抽象觀察者角色,可以用一個抽象類或者一個接口實現;在具體的情況下也不排除使用具體類實現。 (北京北大青鳥學校)

北大青鳥學校

具體主題(ConcreteSubject)角色:保存對具體觀察者對象有用的內部狀態;在這種內部狀態改變時給其觀察者發出一個通知;具體主題角色又叫作具體被觀察者角色;(北京北大青鳥學校)

北大青鳥學校

具體觀察者(ConcreteObserver)角色:保存一個指向具體主題對象的引用;和一個與主題的狀態相符的狀態。具體觀察者角色實現抽象觀察者角色所要求的更新自己的接口,以便使本身的狀態與主題的狀態自恰。 (北京北大青鳥學校)

下面給出一個示意性實現的Java代碼。首先在這個示意性的實現里,用一個Java接口實現抽象主題角色,這就是下面的Subject接口:(北京北大青鳥學校)

這個抽象主題接口規定出三個子類必須實現的操作,即 attach() 用來增加一個觀察者對象;detach() 用來刪除一個觀察者對象;和notifyObservers() 用來通知各個觀察者刷新它們自己。抽象主題角色實際上要求子類保持一個以所有的觀察者對象為元素的列表。

具體主題則是實現了抽象主題Subject接口的一個具體類,它給出了以上的三個操作的具體實現。從下面的源代碼可以看出,這里給出的Java實現使用了一個Java向量來保存所有的觀察者對象,而 attach() 和 detach() 操作則是對此向量的元素增減操作。(北京北大青鳥學校)

抽象觀察者角色的實現實際上是最為簡單的一個,它是一個Java接口,只聲明了一個方法,即update()。這個方法被子類實現后,一被調用便刷新自己。(北京北大青鳥學校)
public interface Observer
{
void update();
}
代碼清單3、Observer接口的源代碼。

具體觀察者角色的實現其實只涉及update()方法的實現。這個方法怎么實現與應用密切相關,因此本類只給出一個框架。
public class ConcreteObserver implements Observer
{
public void update()
{
// Write your code here
}
}
代碼清單4、ConcreteObserver類的源代碼。

北京北大青鳥學校專家表示:雖然觀察者模式的實現方法可以有設計師自己確定,但是因為從AWT1.1開始視窗系統的事件模型采用觀察者模式,因此觀察者模式在Java語言里的地位較為重要。正因為這個原因,Java語言給出了它自己對觀察者模式的支持。因此,北京北大青鳥學校老師建議同學們在自己的系統中應用觀察者模式時,不妨利用Java語言所提供的支持。

北大青鳥網上報名
北大青鳥招生簡章
主站蜘蛛池模板: av人摸人人人澡人人超碰 | 久久99精品久久久久久国产越南 | 免费一级欧美毛片 | 91精品手机国产在线能 | 一区二区三区四区五区六区 | 日韩国产成人精品视频 | 精品在线99 | 好看毛片| 亚洲天堂免费观看 | 亚洲专区欧美专区 | 国产精品18久久久久久vr | 国产首页精品 | 青青视频国产依人在线 | 国产一区二区免费在线 | 天天看有黄有色大片 | 国产精品青草久久福利不卡 | 国产舐足视频在线观看 | 国产精品一区二区三区久久 | 久草视频国产 | 91国内精品久久久久影院优播 | 男女视频在线观看免费高清观看 | 99精品欧美一区二区三区 | 日韩欧美一区二区三区不卡视频 | 香蕉福利久久福利久久香蕉 | 成人国产网站v片免费观看 成人国产午夜在线视频 | 国产三级精品三级 | 日本大黄网站 | 欧美二区在线观看 | 亚洲男人的天堂网 | 一级片爱爱| 欧美日韩一区二区三区免费不卡 | 亚洲资源在线观看 | a级国产乱理伦片在线观看99 | 国产小毛片 | 久久久www成人免费精品 | aaa一级毛片 | 狠色狠狠色狠狠狠色综合久久 | 自拍1页 | 三级c欧美做人爱视频 | 成人午夜毛片在线看 | 国产乱子精品免费视观看片 |