淺談C#中的消極式載入(3)——還原模型的商務規則

來源:互聯網
上載者:User

    啊~~最近的業餘時間都用在修改自己的部落格上面了,主要是這段時間在網站的留言板上發現很多外國的垃圾廣告,於是做了個“IP黑名單”的功能,留言和文章評論也都加了驗證碼,順便把背景代碼整理了一下,希望新加的驗證碼不會對大家留言和發評論造成不便!


    今天在部落格園上有朋友留言說怎沒有寫完整,不好意思啊,這段時間有空的時候都在改自己的部落格了。555~

    文章依舊是在自己的部落格轉過來的,原文地址:http://www.youguanbumen.net/Article.aspx?id=74

【原文內容】

    上一篇文章講到把實體類中需要實現消極式載入的屬性聲明為virtual,然後繼承實體類做一個子類,在子類裡面實現該屬性,配合使用委託來實現比較完美的消極式載入(原本的”模型層“依舊保持在最底層用於貫穿三層結構,同時又可以實現在實體類的屬性裡面訪問到比他高層的”資料訪問層“)。文章的最後依舊出現杯具,原因是在對模型的屬性實現消極式載入之前,這個屬性可能由於我們業務的需要,它並不單單是作為一個儲存和讀取的功能使用,而是在其get或者set的訪問器中都包含這或許複雜或許簡單的邏輯代碼。

    舉例:考慮一下這個情景,我們有一個叫做任務單的實體類,其中有兩個屬性,一個叫做”任務名”,一個叫做“發布時間”,現在有這樣的業務規定,任務名稱可以為空白,但如果任務名稱為空白的話我們要讀取“發布時間”產生一個任務名來代替掉這個空值(例如叫做“Issue20110120191345”),當然這個例子有點牽強,主要是我想不出什麼很具體的執行個體,但是在實際開發中這種情況肯定是有的並且其中的邏輯代碼有可能複雜到你難以想象。

    沿用前面兩篇文章的例子,我類比了這一現象,對“文章”實體類做了點修改,增加了一個名為GetCategoryRecord的字串型屬性,它的作用基本上可以從字面上看出來,叫做“Category屬性get訪問器調用記錄”。於是“文章“類(基類)修改如下:

c#代碼?
12345678910111213141516171819202122232425262728293031
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.