Así que han completado mi análisis y diseño orientado a objetos de una aplicación web que estoy construyendo y recibo actualmente en ejecución. Se han tomado decisiones de diseño para implementar el sistema utilizando Python y el marco de desarrollo web Django.clases desacoplamiento de dominio de las clases Django Modelo
Quiero empezar a aplicar algunas de mis clases de entidad de dominio que requieren persistencia. Parece que Django quiere que los implemente como clases heredadas de la clase de modelos de Django para usar el ORM de Django para la persistencia. Sin embargo, esto parece un acoplamiento demasiado fuerte entre mis entidades de clase y el mecanismo de persistencia. ¿Qué sucede si en algún momento quiero deshacerme de Django y utilizar otro marco de desarrollo web, o simplemente abandonar el ORM de Django para obtener una alternativa? Ahora tengo que volver a escribir las clases de mi entidad de dominio desde cero.
Así que sería mejor implementar mis clases de dominio como clases Python independientes, encapsulando toda mi lógica comercial en éstas, y luego usar algún mecanismo (patrón de diseño como bridge o adaptador o ???) para delegar el almacenamiento de persistencia de estas clases de dominio para el ORM de Django, por ejemplo a través de una clase de modelo de Django que se ha configurado adecuadamente para esto.
¿Alguien tiene alguna sugerencia sobre cómo hacer esto? De todo lo que he leído parece que las personas simplemente implementan sus clases de dominio como clases heredadas de la clase de modelo de Django y tienen una lógica de negocios mezclada dentro de esta clase. Esto no parece una buena idea para los cambios de línea hacia abajo, mantenimiento, etc. reutilización
Sería una mejor respuesta si explicaras por qué sería una característica en lugar de un error. Me encanta Python, pero la combinación de diferentes conceptos de Django no siempre es una ganancia. – AdamC