mirror of
https://github.com/akuker/RASCSI.git
synced 2024-06-17 03:29:30 +00:00
cd0da558c3
Initial version of the Control Board UI (#687)
22 lines
711 B
Python
22 lines
711 B
Python
"""Module for Observable part of the Observer pattern functionality"""
|
|
from typing import List
|
|
from observer import Observer
|
|
|
|
|
|
class Observable:
|
|
"""Class implementing the Observable pattern"""
|
|
_observers: List[Observer] = []
|
|
|
|
def attach(self, observer: Observer):
|
|
"""Attaches an observer to an obserable object"""
|
|
self._observers.append(observer)
|
|
|
|
def detach(self, observer: Observer):
|
|
"""detaches an observer from an observable object"""
|
|
self._observers.remove(observer)
|
|
|
|
def notify(self, updated_object):
|
|
"""Notifies all observers with a given object parameter"""
|
|
for observer in self._observers:
|
|
observer.update(updated_object)
|