因此,我完成了我正在构建的Web应用程序的OO分析和设计,现在正在实施。设计决定已经实现了使用Python和Web开发框架Django来实现系统。从Django模型类中解耦Domain类
我想开始实现一些需要持久性的域实体类。看来Django会让我将它们实现为从Django模型类继承的类,以便使用Django ORM进行持久化。然而,这似乎是我的类实体和持久性机制之间的耦合太强。如果在某个阶段我想要抛弃Django并使用其他Web开发框架,或者只是将Django的ORM替换为另一个选项,会发生什么?现在我必须从头开始重写我的域实体类。
因此,最好将我的域类作为独立的Python类实现,将我所有的业务逻辑封装在这些类中,然后使用一些机制(设计模式,如桥或适配器或???)来委托持久性存储这些领域类到Django ORM,例如通过一个Django模型类,它已经被适当地设置了。
有没有人有关于如何去做这件事的建议?从我所读到的看来,人们只是简单地将它们的领域类实现为继承自Django模型类的类,并且在这个类中混合了业务逻辑。这似乎不是一个好主意,用于下线更改,维护,可重用等。
如果你解释为什么这是一个功能而不是一个错误,这将是一个更好的答案。我喜欢Python,但是Django将不同概念混合在一起并不总是一个胜利。 – AdamC