2011-08-05 14 views
0

獲取國家代碼或內部ID可能需要訪問數據庫或簡單地加載屬性文件。獲取國家代碼 - 服務或實用方法?

這樣的方法怎麼會放在應用程序中?作爲一種實用方法,它會看起來不合適,所以它適合應用服務?

回答

1

在DDD這種類型的方法的將被放置在一個repository,這基本上是一個數據訪問層的抽象。對於像國家代碼這樣的東西,您可以考慮緩存數據,因爲它是靜態的。

1

根據我的經驗,國家沒有內部ID。 (您的域名可能會有所不同。)因此,如果它不存在於您的域名中,並且您正在進行域驅動設計,那麼您將希望避免使用像country id這樣的虛假概念。

讓我們假設你已經有了數據庫中的表Address。而不是存儲CountryId,而是存儲CountryAbbreviation。這是一個自然的關鍵。

現在,你如何確保你的地址只有有效的country_id?如果你在所有的客戶端的控制(例如),那麼你做這樣的事情:

<select> 
    <option value="US">United States</option 
    <option value="UK">United Kingdom</option 
</select> 

上面,你可以看到value屬性是國家縮寫。

除非報告是基於全國關閉的縮寫,你並不真的需要確保它們是超一致的(除非它是超級重要的是您的域名)。