簡體   English   中英

存儲庫架構與客戶端-服務器架構?

[英]Repository architecture vs Client-Server architecture?

准備考試,它會問:

存儲庫架構區別於客戶端-服務器架構的關鍵方面是什么?

我對此的回應是:

存儲庫架構是集中式數據,可以被多個組件訪問以存儲和編輯數據,一個組件上的更改會在所有組件之間復制,數據在客戶端進行處理。 Client-Server 可以有多個服務器和客戶端,每個服務器和客戶端相互交互以提供服務,數據和服務在服務器端處理。

這是正確的,你認為這回答了這個問題嗎? 我也覺得 Client-Server 和 Repository 不是那么容易比較,因為您可以在 Client-Server 架構中運行一個存儲庫系統。

我不會同意。 存儲庫絕對是實現客戶端-服務器模式的一種方式,特別是 - 服務器端。 擁有一台服務器意味着至少有一個客戶端的存在。 即使某處沒有中央數據庫,仍然存在可能是客戶端本地的數據層 如果沒有某種數據層,您只能使用“內存中”應用程序:它們根本沒有狀態(例如,包括缺少用戶設置)。 我認為您的問題不僅限於這些。

存儲庫模式背后的想法是抽象出數據 IO實現細節的必要性。 它隱藏了數據庫的某些結構、它的配置、映射和(很少)在適當的IRepository類中的驗證邏輯。 通常這些家伙是通用的,所以程序員處理IRepository<T>並在T上施加一些額外的約束。 因此,擁有這樣一個接口可以讓您:1) 同時使用概念上不同的數據庫,讓其他代碼不知道它們的主要差異(想象一下傳統 SQL 以及基於圖形的數據庫),2) 替換不同的數據庫而不更改外部世界:比如說,你決定擺脫MSSQL並轉向Neo4j ,反之亦然,3)最后,最后但絕對不是最不重要的,你獲得了某種“責任”的鋒利邊緣 - 數據 IO。 它充當了一個方便的擴展點來注入驗證或日志記錄等擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM