標籤:style blog http color io os ar 使用 strong
************前言:
開篇起筆先問:“泛型是什麼”?解:泛型是類型抽象類別。作用是什麼:“通過對類型的抽象,封裝,大量減少我們的代碼量”。
從開始學習物件導向,“抽象”一詞就不斷的在耳邊重複。但是在沒有做過項目之前,尤其是在沒有嘗試著用物件導向的思維去做項目之前,“抽象”在腦子裡永遠都是一個虛無縹緲的詞兒。那麼在具體的項目中,我們是如何一步一步地把“抽象”變得具體課件的呢?——繼承,泛型……
************“泛型”與抽象的不解之緣:
注意:
①相同:該層類圖存在大量的重複代碼,類中的方法有90%的相似度
②不同:每個類的傳入實體和返回實體個不同
- 圖二:使用OOFramework架構的DAL層類圖(根據圖三畫的)
注意:
公用的方法抽象出來放到了RepositoryBaseDAL類中,並向外提供一個介面。每個具體的類有自己的介面,此例中是IUserDAL(此介面也是向外暴露的介面),便與擴充屬於UserDAL類自身的方法。公用的方法則繼承自RepositoryBaseDAL類。
參數是:T,Tcollection,就是我們今天的主角“泛型”。
使用此策略解決了圖一中存在的問題。同時也為架構之路鋪好了墊腳石。
************自解:
在學習泛型之初很是不理解泛型。也不能理解“對類型的抽象”的意思,不過通過一個項目的體驗之後,現在可以大致的理解“泛型”。其實“泛型”所起的作用就跟抽象類別,抽象方法所起的作用是一樣的,只不過它是為了給類或方法後的括弧裡的東西來做抽象。
************好處:
①為不同對象提供服務:有了泛型,可是使相同的代碼服務於不同的對象。
②抽象更加完善:沒有泛型,我們只能抽象一些類,抽象方法,但是有了“泛型”,我們將傳入的參數以及返回值都可以進行抽象。
③減少代碼重複量:抽象能夠減少大量的代碼,“泛型”是抽象的一小部分,所以“泛型”必須學習。
④物件導向的必經之路:物件導向的三大要素基於抽象,而“泛型”是抽象的一小部分,所以“泛型”是物件導向的必經之路。
⑤架構之路的開始:要想做好架構,物件導向必須是必須掌握的,而“泛型”是衡量是否物件導向的一個重要標誌。
************總結:
曾在《機房收費系統合作版(一)——架構搭建》中展示過該系統的架構,但是老師卻在評論中寫道:“
在這個系統中,沒有看到你使用泛型啊!”當時不是很理解,老師為什麼會說我沒有用泛型,這次總結再返回去看那篇部落格才知道,自己在架構圖中忘了畫泛型了。或許在當時看來只是忘了,但是現在看來,當初肯定不是忘了,而是根本就不理解泛型。現在將那篇部落格的圖糾正於此:
機房收費系統合作版(四)——泛型之解