Я ищу правильный шаблон проектирования для реализации интерфейса в настройках класса.
Моя структура файла выглядит следующим образом:
- модели: , которая содержит различныемодели, написанные в классах, скажем
Model
, subModelA
, subModelB
, subsubModelC
и т. д. - калькуляторы: , которые содержат различные инструменты калькулятора для каждой модели. Обратите внимание, что калькулятору потребуется импортировать атрибуты модели для вычислений.
Мой вопрос заключается в том, как мне структурировать файл калькулятора так, чтобы он соответствовал структуре моделей.
Моя первоначальная попытка - написать класс ABC
для моего calculator
, а затем для каждого subModel
класса в модель Я пишу соответствующий подкласс subCalculator для реализации.Однако это, похоже, не в полной мере использует предписанную структуру классов в модель .
Некоторые детские примеры моей попытки:
# in model.py
class model(object):
def __init__(self,attr1):
self.attr1 = attr1
class submodel(model):
def __init__(self, attr1, attr2):
super().__init__(attr1)
self.attr2
# in calculator.py
from model import model
class calculator(abc.ABC):
@staticmethod
@abc.abstractmethod
def calculate(model):
return model.attr1 ** 2
class subcalculator(calculator):
def calculate(model):
y = super(subcalculator, subcalculator).calculate(model)
return y + model.attr2 ** 3
Я обследовал некоторыеКаталоги шаблонов дизайна, как указано в здесь , и стратегия, кажется, правильный шаблон.Но пример с ребенком не решает мою проблему, так как я надеюсь использовать структуру классов в файле модели.
Я надеюсь, что кто-то может дать мне более полноценный пример в таком случае.Заранее спасибо.