python
設計模式
觀察器模式
class Subject: def __init__(self): self.State = '' self.OList = [] def GetState(self): return self.State def SetState(self, state): self.State = state self.NotifyObeservers() def AddObeserver(self,observer): self.OList.append(observer) def RemoveObeserver(self,observer): self.OList.remove(observer) def NotifyObeservers(self): for O in self.OList: O.Update()
class Observer: def __init__(self,name,subject): self.name = name self.Subject = subject def Update(self): print(self.name,self.Subject.GetState())
S1 = Subject()
O1 = Observer('O1',S1) O2 = Observer('O2',S1)
S1.AddObeserver(O1) S1.AddObeserver(O2)
S1.SetState('Update') S1.SetState('Update2')S1.SetState('Update3')
程式碼說明
定義被觀察者,在定義觀察者,建立被觀察者,建立觀察者,把被觀察者方方入觀察者,把觀察者方入被觀察者中的觀察清單,概念狀態,改變時,則會通知狀態更新。
留言
張貼留言