鮑勃大爺:物件是更關注行為,資料庫表則是簡單的資料結構,if/else/switch有使用依據
物件更多是關於行為還是資料?從外部看,資料是隱藏的,行為是公開的。我們看到投入轉化為產出。但看不到任何倍隔離的資料;我們也不知道這些資料的儲存位置或儲存方式。
資料庫表更多是關於行為或資料資訊?它們是簡單的資料結構。從外部看,資料是暴露的,沒有任何行為,無論可見或隱含的行為。
物件和資料結構是相互補充的。它們是正交的:隱藏資料和暴露行為;或者,暴露資料和無可見行為。
我們使用具體的if /else/switch語句區分資料結構型別。我們通過抽象多型性來區分物件型別。依賴關係的方向彼此相反。這對計劃組織具有深遠的影響。
在任何一個程式中,如果將新資料型別新增到現有行為中,則物件是首選的組織方式,因為新增子類比更改過多的switch語句要容易得多。
在任何一個程式中,如果將新行為新增到現有資料型別,則首選資料結構;因為新增一個switch語句比更改層次結構中的過多子類要容易得多。
因此,在您的系統中,哪種更改的頻率更高?您是更頻繁向現有資料新增新行為,還是更頻繁向現有行為新增新資料型別?而且,也許更重要的是,根據作用域權衡。
假設:在程式碼的最低階別,我們傾向於將新行為新增道現有資料型別。在體系結構架構級別,我們傾向於將新的資料型別新增到現有行為中。如果這個假設為真,則此推測表明,最好圍繞if/else/switch邏輯組織低階程式碼,而最好圍繞多型性組織體系結構和架構。
眾說紛紜:
這個觀點有趣,也許解釋了:為什麼物件範例中的許多方法都是公開資料的簡單獲取getter()和設定操作setter()的原因。而在資料庫表世界內,通常將儲存過程和觸發器(代表行為)新增到DBMS。如何融合它們... (banq注:無法融合,兩種世界觀)
我正在一箇舊系統上工作,在該系統上許多資料結構都暴露在外。這是一場災難。
物件最好是關於保護資料完整性的。您可以通過組織與該資料的互動來確保這一點。
兩者,但並非總是同時。我傾向於使用最低階別的應用程式組織我的應用程式,其中包含一個資料物件和一些獨立的行為類,例如驗證。它們被卡在一個幕牆後面,該幕牆將這些定義組合成一個可配置的整體。有些人可能會認為這是“貧血模型”。我只是應用SRP和DI來建立可測試的,可組合的領域模型。
資料儲存和資料處理應該有明顯的區別。這樣一來,當需要在2040年用SuperDatastoreX淘汰MSSQLs時候,團隊不會再對你的名字吹氣了,因為您“對資料庫進行了程式設計”。
15年了,我從未見過有人真正改變過他們的儲存系統
相關文章
- 鮑勃大爺:軟體架構類似房子,物件導向是房子的結構,水管線管是函數語言程式設計架構物件函數程式設計
- 資料庫選型的依據資料庫
- 資料是什麼——資料的結構
- 資料庫——關係型資料庫MySQL--簡單使用資料庫MySql
- 資料庫-單表結構-建表語句資料庫
- 什麼是結構化資料?什麼是半結構化資料?
- DBus資料庫表結構變更處理方案資料庫
- 依據前後資料關聯關係,生成多行資料
- 資料結構簡單題資料結構
- Django學習(四)表單,讓資料庫更強大Django資料庫
- 什麼是資料結構資料結構
- Activiti資料庫表結構資料庫
- QC資料庫表結構資料庫
- 資料結構之資料、資料元素、資料項、資料物件之間的關係資料結構物件
- 我是如何自學資料結構的?資料結構
- 資料庫索引中包含的資料結構有哪些資料庫索引資料結構
- 海量資料處理_表結構變更
- Flyway讓資料庫版本管理更簡單資料庫
- 資料庫是如何使用鎖資料庫
- 幾千萬記錄,資料庫表結構如何平滑變更?資料庫
- 設計HBase資料庫資料表有關的建議資料庫
- 簡述oracle資料庫結構Oracle資料庫
- 【轉載】關聯式資料庫還是NoSQL資料庫資料庫SQL
- 什麼是資料庫?什麼是雲資料庫?資料庫
- 大資料的核心架構層是哪些?大資料架構
- database資料庫的資料結構Database資料庫資料結構
- 資料結構簡單要點總結資料結構
- 關於資料表結構sql檔案匯入mysql資料庫的問題?MySql資料庫
- 資料結構中抽象資料型別是什麼?資料結構抽象資料型別
- 什麼是大資料?大資料開發是做什麼的?大資料
- python演算法與資料結構-什麼是資料結構Python演算法資料結構
- 資料結構——單鍵表操作集資料結構
- 個數是如何用大資料做行為預測的?大資料
- Mysql索引資料結構為什麼是B+樹?MySql索引資料結構
- mysql,sqlserver資料庫單表資料過大的處理方式MySqlServer資料庫
- 鮑勃大爺:將if/else中每個條件變為邏輯並列互拆而不依賴執行順序。
- 資料是什麼——資料的倉庫
- 關係型資料庫和非關係型資料庫的簡單對比資料庫