Cześć,
mam problem z implemetacją wzorca projektowego "obserwator". Chciałem zrobić, że gdy wpisze coś do notatnika to wszyscy obserwatorzy zostaną o tym powiadomieni.
Na tą chwilę niemoge dodać obserwatora do listy a już nie mówię o ich poinformowaniu.
Obecnie logika czyli wporawdzanie tekstu do pliku i sprawdzenie pliku przed i po wpisaniu działa. Czego mi brakuje?, co robię źle?, co pominąłem?
class produkt_plik:
_lista_obserwatorow_produktu_plik = []
def __init__(self, sta):
self.sta = sta
def attach(self, observer):
self._lista_obserwatorow_produktu_plik.append(observer)
print("Przedmiot informuje: dodano obserwatora")
def detach(self, _lista_obserwatorow_produktu_plik):
self._lista_obserwatorow_produktu_plik.remove(observer)
print("Przedmiot informuje: usunieto obserwatora")
def notify(self):
print("Powiadamiam obserwatorow")
for observer in self._lista_obserwatorow_produktu_plik:
observer.update(self)
class main_obserwator:
def update(self):
pass
class obserwatorA(main_obserwator):
def __init__(self, name):
self.name = name
def update(self):
print('{} info dla ciebie'.format(self.name))
Tak chciałem dodać obserwatora do listy
p = produkt_plik(0)
observer_a = obserwatorA("Jan")
ll = p._lista_obserwatorow_produktu_plik
ll.attach(observer_a)
A taki komunikat dostaje:
ll.attach(observer_a)
AttributeError: 'list' object has no attribute 'attach'