Итак, я завершил анализ OO и дизайн веб-приложения, которое я создаю, и теперь я вхожу в реализацию. Были приняты конструктивные решения для внедрения системы с использованием Python и структуры веб-разработки Django.
Я хочу начать реализацию некоторых классов объектов домена, которые нуждаются в постоянстве. Похоже, что Django предложит мне реализовать их как классы, которые унаследованы от класса моделей Django, чтобы использовать ORG Django для сохранения. Однако это кажется слишком сильной связью между моими классами и механизмом персистентности. Что произойдет, если на каком-то этапе я захочу портить Django и использовать другую инфраструктуру веб-разработки или просто канаву Djangos ORM для альтернативы? Теперь мне нужно перезаписать классы сущности домена с нуля.
Таким образом, было бы лучше реализовать мои классы домена как самостоятельные классы Python, инкапсулировать всю мою бизнес-логику в них, а затем использовать какой-то механизм (шаблон проектирования, такой как мост или адаптер или?), чтобы делегировать хранение настойчивости этих классов домена в ORM Django, например, через класс модели Django, который был соответствующим образом настроен для этого.
Есть ли у кого-нибудь предложение о том, как это сделать? Кажется, из всего, что я прочитал, люди просто реализуют свои классы домена как классы, унаследованные от класса модели Django, и смешивают бизнес-логику внутри этого класса. Это не кажется хорошей идеей для изменения линии вниз, обслуживания, повторного использования и т.д.