因此,我完成了我正在構建的Web應用程序的OO分析和設計,現在正在實施。設計決定已經實現了使用Python和Web開發框架Django來實現系統。從Django模型類中解耦Domain類
我想開始實現一些需要持久性的域實體類。看來Django會讓我將它們實現爲從Django模型類繼承的類,以便使用Django ORM進行持久化。然而,這似乎是我的類實體和持久性機制之間的耦合太強。如果在某個階段我想要拋棄Django並使用其他Web開發框架,或者只是將Django的ORM替換爲另一個選項,會發生什麼?現在我必須從頭開始重寫我的域實體類。
因此,最好將我的域類作爲獨立的Python類實現,將我所有的業務邏輯封裝在這些類中,然後使用一些機制(設計模式,如橋或適配器或???)來委託持久性存儲這些領域類到Django ORM,例如通過一個Django模型類,它已經被適當地設置了。
有沒有人有關於如何去做這件事的建議?從我所讀到的看來,人們只是簡單地將它們的領域類實現爲繼承自Django模型類的類,並且在這個類中混合了業務邏輯。這似乎不是一個好主意,用於下線更改,維護,可重用等。
如果你解釋爲什麼這是一個功能而不是一個錯誤,這將是一個更好的答案。我喜歡Python,但是Django將不同概念混合在一起並不總是一個勝利。 – AdamC