大B:“講了這麼多,你現在能說說觀察者模式的使用情況嗎?”
小A:“1、當一個抽象模型有兩個方面,其中一個方面依賴於另一方面。將這二者封裝在獨立的物件中以使它們可以各自獨立地改變和複用。2、當對一個物件的改變需要同時改變其它物件,而不知道具體有多少物件有待改變。3、當一個物件必須通知其它物件,而它又不能假定其它物件是誰。”
大B:“換言之,你不希望這些物件是緊密耦合的。其實觀察者模式同前面講過的橋樑有著共同的使用環境:將變化獨立封裝起來,以達到最大的重用和解耦。觀察者與橋樑不同的地方在於,觀察者模式中的目標和觀察者的變化不是獨立的,而是有著某些聯絡。”