C#代碼復(fù)用

復(fù)用代碼,是一種節(jié)省重復(fù)代碼編譯的手法,不僅可以提高開(kāi)發(fā)效率,也為代碼的維護(hù)提供了更加高效,實(shí)用的途徑。

在C#中,有很多方式可以復(fù)用我們已經(jīng)寫好的代碼。

最常見(jiàn)的“引用”,在一段代碼最開(kāi)始的地方寫上的using語(yǔ)句,將已經(jīng)寫好的類庫(kù)與正在編寫的代碼聯(lián)系在了一起。但在這里,我并不希望從這個(gè)角度去理解復(fù)用。作為開(kāi)發(fā)人員,我們應(yīng)該看到的是,抽象帶來(lái)的代碼復(fù)用方面的價(jià)值。

抽象,最重要的意義是為事物歸類,最后的產(chǎn)品就是類。多個(gè)類形成類庫(kù)或者包,通過(guò)公共接口,被反復(fù)使用。只要寫過(guò)代碼的人都清楚這種復(fù)用方式帶來(lái)的價(jià)值——一個(gè)新手,不需要自己做底層的工作,也可以讓編譯器完成想要完成的事情。

目光轉(zhuǎn)向單個(gè)項(xiàng)目。做好了歸類,或許在你的設(shè)計(jì)圖紙上就已經(jīng)有了很直接,清晰有序的類圖。接下來(lái)為行為做抽象,形成不同的接口。

如果想要完成某個(gè)簡(jiǎn)單的動(dòng)作(比如將某種類型轉(zhuǎn)換成另一種類型的顯式方法調(diào)用),卻不知道什么方法可以完成,是不是需要去翻閱成噸的文檔,查看在哪個(gè)類型下面有對(duì)應(yīng)的方法呢?答案是不一定。如果我們?cè)谠O(shè)計(jì)最初,就把眾多類型中(或者理解成不同類中)完成相同任務(wù)的方法抽象成一個(gè)接口(或者說(shuō)讓他們實(shí)現(xiàn)同一個(gè)接口),那么工作變得簡(jiǎn)單了。

我們只需要把包含這個(gè)接口的類庫(kù)引用進(jìn)來(lái),然后直接調(diào)用實(shí)現(xiàn)接口的方法就行了。這是一種非常有序的代碼復(fù)用的辦法。

在C#中有一種非常實(shí)用的特性——泛型

泛型的出現(xiàn)提供了另一種代碼復(fù)用的方案:將對(duì)不同類型,相同的操作的被操作類型用泛型替代。泛型就像我們上學(xué)的時(shí)候經(jīng)常用到的X和Y,用于指代“某個(gè)數(shù)”,或者理解成某個(gè)“數(shù)學(xué)元素”。在C#當(dāng)中,泛型可以用來(lái)指代某個(gè)“編程元素”。

如果采用泛型,代碼將變得像數(shù)學(xué)公式一樣,具有強(qiáng)大的通用性。在擁有泛型的底層上開(kāi)發(fā),將變得隨心所欲,甚至不需要考慮當(dāng)前是對(duì)什么樣的數(shù)據(jù)在做處理。結(jié)合合理的數(shù)據(jù)類型轉(zhuǎn)換,我們甚至可以完成對(duì)不同類型數(shù)據(jù)的統(tǒng)一處理(其實(shí)這只是我的一個(gè)想法,有待實(shí)施)。

總結(jié)一下,方法調(diào)用,類型引用是兩種非常機(jī)械,也很容易理解的代碼復(fù)用(就像從同桌那借來(lái)一塊橡皮一樣),接口和泛型是C#語(yǔ)言特性中為開(kāi)發(fā)者節(jié)省開(kāi)發(fā)成本的手段,但是需要底層做非常多的工作,好在IDE(集成開(kāi)發(fā)環(huán)境)都幫我們搞定了。后面兩種需要長(zhǎng)時(shí)間的練習(xí)才能掌握,這練習(xí)的結(jié)果,將是得到一種非常靈活的開(kāi)發(fā)體驗(yàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評(píng)論 25 708
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,897評(píng)論 18 399
  • 喜歡在一個(gè)安閑的時(shí)刻 去逛一條安閑的街 就這么沒(méi)有目的的晃悠 可能就會(huì)碰到一家安閑的店 進(jìn)去坐坐 帶著一顆安閑的心
    華枝春滿5339閱讀 327評(píng)論 2 8
  • 逢年過(guò)節(jié),年紀(jì)尚小的孩子們最高興的莫過(guò)于收壓歲錢了。 記得那時(shí)每年的初一都起得很早,早早地?fù)Q上新衣服、早早地吃了餃...
    陳禹同Bruce閱讀 600評(píng)論 2 3
  • 也許有人會(huì)問(wèn):“什么是幸福?”我想幸??梢允窃谝凰查g,也可以是一輩子那么長(zhǎng),一個(gè)釋懷的笑容可以是他人眼中明媚的幸福...
    憶往昔注孤生閱讀 180評(píng)論 0 0

友情鏈接更多精彩內(nèi)容