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