2010-01-09 98 views
0

我想改進我的N_Tier拱對象映射 - 壓扁屬性,而不是對象引用

的知識BLL內部,並在情況下,我在BLL使用自定義業務對象,像CustomerInfo {FN,LS, ...},考慮我有Customer表和Currency表,Customer有一個默認貨幣,因此Customer表中有一個FK Currency_ID,在UI層,我們需要顯示貨幣符號而不是Currency_ID。 (SELECT ... INNER JOIN ..)

我可以將貨幣符號作爲CustomerInfo中的一個屬性,而不是將CustomerInfo中的CurrencyInfo引用。

我覺得No是答案,但爲什麼?什麼會變壞?

數據庫中的每個業務表(不包括驗證查找)是否映射到業務對象?

我認爲業務對象(包含從DAL帶來的數據的對象)應仔細映射到數據庫中的表,這可以增加可維護性。但BLL可以包含任何用於業務操作和業務驗證的對象。

請給我一些書籍標題,或鏈接掌握N層拱門和關於它的辯論。

感謝

回答

0

也許你應該閱讀一些關於設計模式(在Wikipedia page on the subject鏈接,其中的一些)的許多優秀的書籍。特別是,您可能會發現數據傳輸對象(DTO)的概念很好。通常的做法是建立一個與您的數據庫緊密映射的域模型,可能使用像(NHibernate,iBatis等這樣的對象關係映射工具,然後再有一組轉換器/適配器將它們轉換爲稍微平坦的對象(如您描述的CustomerInfo對象)更適合我們的應用程序顯示和處理數據的方式。