(Используется Python 3.2, хотя вряд ли это имеет значение.)
У меня есть class Data
, class Rules
и class Result
. Для обозначения экземпляра класса я использую строчные буквы.
Объект rules
содержит правила, которые, будучи примененными к объекту data
, могут создать объект result
.
Я решаю, где разместить (довольно сложный и развивающийся) код, который фактически применяет правила к данным. Я вижу два варианта:
Поместить этот код в метод класса Result
, скажем parse_rules
. Result
конструктор будет принимать в качестве аргумента объект rules
и передавать его в self.parse_rules
.
Поместите этот код в новый класс ResultFactory
. ResultFactory
будет синглтоном класса, который имеет метод, скажем build_result
, который принимает rules
в качестве аргумента и возвращает только что построенный объект result
.
В чем плюсы и минусы этих двух подходов?