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')
程式碼說明
定義被觀察者,在定義觀察者,建立被觀察者,建立觀察者,把被觀察者方方入觀察者,把觀察者方入被觀察者中的觀察清單,概念狀態,改變時,則會通知狀態更新。
留言
張貼留言