接著資料訪問層的再次重構,我們實現對應的bll層編碼,其實關於這部分的內容,可以參考bll層編碼實現,這裡僅僅簡單通過**而演示。構建民意調查模組的業務域物件(poll和polloption)。
上圖的**實際上只需從簡單實體類polldetail和polloptiondetail類中複製過來,改一下類名稱即可。從這裡可以看到至少業務域物件已經涵蓋了簡單實體物件的所有。但是還需要增加簡單實體物件沒有的方法和關聯父子物件引用的屬性。我們接著繼續完善業務域物件。
值得一提的是:就上圖而言,我們發現屬性id/addedby/addeddate是共有的,id是主鍵,addedby(記錄新增者),addeddate(新增日期)
一般而言,如果需要實現跟蹤和審計功能,這些欄位是必不可少的,更複雜的甚至於還記錄了修改人/修改日期等等字段,而且每個表都需要增加這些字段。
雖然votes屬性也共有(但不具有通用意義,別的表是不保證會有的)。模組複雜的,表也較多,所以這樣通用意義的屬性我們最好還是提取到父類中,這樣子類繼承顯得更簡潔和容易維護,我們這裡還是養成這樣良好的習慣。
接下來我們完善業務域物件的方法,先實現靜態方法,其實就是對dal層pollsprovider方法的呼叫而已。
不過這裡有細節需要注意:上圖中的get方法返回的物件是簡單實體物件,bll層返回給ui的自然是業務域物件,所以在bll層封裝呼叫這些方法的時候,
必然涉及實體物件《集合》轉換為業務域物件《集合》的實現。
現在先實現這些轉換方法:
接著封裝pollsprovider對應的方法:(poll.cs增加的方法如下)
polloption.cs增加的如下:
到這裡,域物件的特有屬性可以開始實現了。我們知道polls表和polloptions表相關關聯。polls問卷的選項要在polloptions中獲得,而
選項管理的問卷需在polls表獲取。
自然,poll域物件需要增加乙個屬性以獲取與之關聯的所有選項。polloption域物件需要poll屬性獲得關聯的問卷資訊。
我們看實現的**:
再次預祝兄弟姐妹們龍龍大吉!闔家歡樂!國泰民安!!!
國航空中wifi民意調查,9成網友要求免費wifi
近日國航成功開通空中免費wifi服務,迅速成為們的熱議焦點,針對對於空中wifi意向性調查,大部分希望國航繼續保持免費服務。其實早在大5年前,歐美等國航空公司已相繼推出空中免費上網服務。如今在歐美國家,已有30 以上的飛機基本可以在空中使用網路。據不完全統計,目前世界上已開通wifi的航空公司有近3...
DAL層與BLL層的設計原則
通用dal層 專用dal層 基於通用dal層的基礎架構,為每個具體表提供乙個實體類和乙個dal類,此層比通用dal層的通用性稍差,這主要是為了給每個表提供一些專用的操作。此層以單錶為中心,為針對單錶的各種可能的訪問提供專用方法,可以作為單錶資料的入口。專用dal層不捕獲任何異常 專用dal層的實體類...
問卷調查模組實現的過程中的歷程
目前,遊戲已經到了收尾階段,為了配合公測,特意做了乙個問卷調查模組,用於收集玩家對遊戲的反饋。下面使我們的設計歷程。設計之初,我們曾經想過使用資料庫儲存,為了實現這個模組將增加配置庫里2 3個表,因為考慮到這個模組屬於不大重要的模組 一次性使用 這樣做增加了資料庫的維護了成本,我們的遊戲的配置表已經...