機房收費系統合作版(四)——泛型之解

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   ar   使用   strong   

************前言:

開篇起筆先問:“泛型是什麼”?解:泛型是類型抽象類別。作用是什麼:“通過對類型的抽象,封裝,大量減少我們的代碼量”。

 

從開始學習物件導向,“抽象”一詞就不斷的在耳邊重複。但是在沒有做過項目之前,尤其是在沒有嘗試著用物件導向的思維去做項目之前,“抽象”在腦子裡永遠都是一個虛無縹緲的詞兒。那麼在具體的項目中,我們是如何一步一步地把“抽象”變得具體課件的呢?——繼承,泛型……

 

************“泛型”與抽象的不解之緣:

  • 圖一:沒有使用框架構時的DAL層類圖


注意:

①相同:該層類圖存在大量的重複代碼,類中的方法有90%的相似度

②不同:每個類的傳入實體和返回實體個不同

 

 

  • 圖二:使用OOFramework架構的DAL層類圖(根據圖三畫的)


注意:

公用的方法抽象出來放到了RepositoryBaseDAL類中,並向外提供一個介面。每個具體的類有自己的介面,此例中是IUserDAL(此介面也是向外暴露的介面),便與擴充屬於UserDAL類自身的方法。公用的方法則繼承自RepositoryBaseDAL類。

 

參數是:T,Tcollection,就是我們今天的主角“泛型”。


使用此策略解決了圖一中存在的問題。同時也為架構之路鋪好了墊腳石。

 

  • 圖三:DAL層整體架構圖



************自解:

在學習泛型之初很是不理解泛型。也不能理解“對類型的抽象”的意思,不過通過一個項目的體驗之後,現在可以大致的理解“泛型”。其實“泛型”所起的作用就跟抽象類別,抽象方法所起的作用是一樣的,只不過它是為了給類或方法後的括弧裡的東西來做抽象。

 

************好處:

①為不同對象提供服務:有了泛型,可是使相同的代碼服務於不同的對象。

②抽象更加完善:沒有泛型,我們只能抽象一些類,抽象方法,但是有了“泛型”,我們將傳入的參數以及返回值都可以進行抽象。

③減少代碼重複量:抽象能夠減少大量的代碼,“泛型”是抽象的一小部分,所以“泛型”必須學習。

④物件導向的必經之路:物件導向的三大要素基於抽象,而“泛型”是抽象的一小部分,所以“泛型”是物件導向的必經之路。

⑤架構之路的開始:要想做好架構,物件導向必須是必須掌握的,而“泛型”是衡量是否物件導向的一個重要標誌。

 

************總結:

曾在《機房收費系統合作版(一)——架構搭建》中展示過該系統的架構,但是老師卻在評論中寫道:“

在這個系統中,沒有看到你使用泛型啊!”當時不是很理解,老師為什麼會說我沒有用泛型,這次總結再返回去看那篇部落格才知道,自己在架構圖中忘了畫泛型了。或許在當時看來只是忘了,但是現在看來,當初肯定不是忘了,而是根本就不理解泛型。現在將那篇部落格的圖糾正於此:


 

機房收費系統合作版(四)——泛型之解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.