(примечание) Буду признателен за помощь в обобщении названия. Я уверен, что это класс проблем в ОО-земле, и, вероятно, он имеет разумный характер, я просто не знаю лучшего способа его описать.
Я рассматриваю следующее: наш серверный скрипт будет вызываться внешней программой, и в него будет выгружаться куча текста (обычно XML).
Есть несколько возможных типов данных, которые мы могли бы получать, и несколько версий представления данных, которые мы могли бы получать, например. «Тип отчета A, версия 1.2» против «Тип отчета A, версия 2.0»
Как правило, мы хотим выполнить одно и то же действие со всеми данными, а именно определить, какой это сорт и версию, затем проанализировать их с помощью пользовательского синтаксического анализатора, а затем вызвать для них функцию синхронизации с базой данных.
Со временем мы обязательно добавим типы и версии.
Итак, каков хороший шаблон дизайна здесь? Я могу придумать два, у обоих, кажется, есть проблемы с сомом.
Вариант 1
- Напишите скрипт монолитного идентификатора, который определяет тип, а затем
импортирует и вызывает правильно названные функции класса.
Преимущества
- Вероятно, довольно легко отлаживать,
- Только один файл, который выполняет анализ.
Недостатки
- Кажется, взломать.
- Было бы неплохо не создавать
знание форматов данных в двух местах, один раз для идентификатора, один раз для фактического
слияния.
Вариант 2
- Написать функцию «ID» для каждого класса; возвращает Да / Нет / Может быть, когда задан идентифицирующий текст.
- скрипт ID теперь импортирует группу классов, создает их экземпляры в тексте и спрашивает, совпадают ли текст и тип класса.
- расквитаться:
- чище в том, что все живет в одном модуле?
- Downsides:
- Медленнее? Зависит от логики прохождения классов.
Говоря абстрактно, должен ли Python создавать группу классов и использовать функцию ID, или Python должен создавать один (или несколько) классов ID, имеющих класс парных элементов, или каким-либо другим способом?