我在Python编码,但问题似乎与编程语言无关。
我有一个代表系统检查的类:
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
然后我们通过继承Check类来进行一组检查,并按以下方式使用它们(简化):
class Checker:
checks = [check1, check2...]
def __call__(self):
for check in self.checks:
if not check.is_ok:
alarm()
问题是:是否可以强制子类设置一些受保护的对象属性?
答案 0 :(得分:0)
我想这可能是可以接受的。
您还可以考虑让子类实现自己的is_ok()方法,而不是修改受保护的属性,这样他们就可以实现自己的检查策略。