У меня есть 3 класса: A
, B
и C
где оба B
и C
унаследуют от A
. Как B
, так и C
необходимо реализовать метод, называемый prepare
, который можно назвать x
раз, и как только этап подготовки будет выполнен, можно вызвать функцию final_calculation
. Я думал, что у обоих классов есть boolean
, который переключается, в зависимости от того, находимся ли мы на стадии подготовки. Если мы находимся на стадии подготовки, можно вызвать только функцию prepare
, иначе функция final_calculation
. Таким образом, A
будет выглядеть примерно так:замок, который решает, какие функции можно назвать
class A:
def __init__(self):
self.prepare_state = True
def toggle_state(self):
self.prepare_state = not self.prepare_state
def prepare(self):
if self.prepare_state is False:
raise StateError
def final_calculation(self):
if self.prepare_state is True:
raise StateError
Имеет ли это смысл? Это напоминает мне образец Singleton или State, и это напоминает мне мьютекс, с которым я не работал раньше. Есть ли шаблон дизайна для того, что я пытаюсь сделать? Я не хочу заново изобретать колесо, поэтому любые ключевые слова относительно того, что я должен искать, приветствуются.
Какой язык? –
Python, хотя я также доволен независимыми от языка идеями – carence