A)觀察者模式的模式模型:觀察者模式是一種行為設計模式,它容許對象在發生狀態變化時通知其他對象。在觀察者模式中,有兩種類型的對象:主題和觀察者。主題是狀態變化的對象,觀察者是接收主題狀態變化通知的對象。當主題狀態發生變化時,它會通知所有的觀察者,讓它們才能更新自己的狀態。觀察者模式的模式模型包括以下幾個角色:1.具象主題():定義了主題的插口,包括添加、刪除和通知觀察者的技巧。2.具體主題():實現了具象主題插口,維護了一個觀察者列表,并在狀態發生變化時通知觀察者。3.具象觀察者():定義了觀察者的插口,包括更新狀態的技巧。4.具體觀察者():實現了具象觀察者插口,保存了一個指向具體主題的引用,并在接收到通知時更新自己的狀態。B)場景實現:下邊是一個基于觀察者模式的小吃形成器場景實現的示例代碼:```#具象主題class:def(self):self.=[]def(self,):self..()def(self,):self..()def(self,food):forinself.:.(food)#具體主題class():def(self):super().()def(self):#隨機形成一道小吃food=.(['廣味火腿飯','廣州雞飯','美味烤蠔','雪域冰城糖水'])#通知所有觀察者self.(food)#具象觀察者class:def(self,food):pass#具體觀察者class():def(self,name,):self.name=.=(self,food):iffood==self.:print(f'{self.name}:我喜歡的{food}出鍋了!')else:print(f'{self.name}:我不喜歡的{food}出鍋了。
')#場景實現if=='':#創建迷你小吃形成器=()#創建中學生觀察者=('小明','廣味火腿飯')=('小紅','廣州雞飯')=('小剛','美味烤蠔')=('小芳','雪域冰城糖水')#添加觀察者.().().().()#形成小吃.()```在前面的代碼中,我們定義了一個具象主題``,它包括添加、刪除和通知觀察者的技巧。
之后我們定義了一個具體主題``,它承繼了具象主題,并實現了隨機形成小吃的技巧。當形成小吃時微信點餐,它會通知所有的觀察者。我們還定義了一個具象觀察者``,它定義了更新狀態的技巧。之后我們定義了一個具體觀察者``,它承繼了具象觀察者,并實現了更新狀態的技巧。當收到通知時,它會判定是否是自己喜歡的小吃,若果是就歡呼一聲,否則就不理會。在場景實現中,我們創建了一個迷你小吃形成器``,并添加了四個中學生觀察者。之后我們調用`.()`方式形成小吃微信點餐,這時所有的觀察者就會收到通知,并按照自己的口味判定是否喜歡這道小吃。
免責聲明:部分文章信息來源于網絡以及網友投稿,本站只負責對文章進行整理、排版、編輯,出于傳遞更多信息之目的,并不意味著贊同其觀點或證實其內容的真實性,如本站文章和轉稿涉及版權等問題,請作者在及時聯系本站,我們會盡快為您處理。