Sto codificando in Python, ma la domanda sembra indipendente dal linguaggio di programmazione.
Ho una classe che rappresenta un controllo di sistema:
class Check:
@abstractmethod
def run()
""" You have to define your own run(). As a result, it must set self._ok. """
...
@property
def is_ok():
return self._is_ok
Poi abbiamo una serie di controlli per sottoclassi della classe Check, e sono usati nel modo seguente (semplificato):
class Checker:
checks = [check1, check2...]
def __call__(self):
for check in self.checks:
if not check.is_ok:
alarm()
La domanda è: va bene obbligare la sottoclasse a impostare alcuni attributi di oggetti protetti?