2009-06-29 76 views
1

如何避免代碼重複思考的多種表示,我得到了抓住我,我開始開發一個新的系統,每次一個問題:同一實體

比方說,我們有一個系統,我有一個客戶,有CRUD它存儲在一個存儲庫中,並將其顯示爲web服務中的資源。

關於與客戶的類思考,我們就會有(好吧,我永遠不會使用這些名字真正):

  • CustomerEntity,代表用來做系統的邏輯實體;
  • CustomerRepositoryEntity,表示將存儲它的錶行;
  • CustomerXMLEntity,表示XML節點'客戶';

看來我會有三個實體,並且所有客戶的屬性都會在每個類中。我想知道是否沒有方法,或者是將這三個類合併到同一個實體中的模式,簡稱爲「客戶」。

這樣,每次我需要創建一個新的「Customer」表示(例如,如果我想將其表示爲Json元素),我不需要爲它創建一個新類。我知道這是一個非常特殊的問題,但我只是想知道它是否比我現在的做法更容易(也更好看)。

回答

1

假設你正在使用相同的語言在不同的應用...

建立一個代理類和後端類。

後端類靠近您的數據運行,並且僅用於向您的代理提供數據。

您的代理在任何客戶端上運行,並將後端端點的位置作爲初始化參數。當您的代理對象調用get/set時,它將處理您的驗證和業務規則,然後將請求交還給您的後端類,後端類處理持久化數據的實現細節。

您將有兩層抽象:一個用於數據持久性,另一個用於業務規則。

>>>>> Nathan