C#代碼復用

復用代碼,是一種節省重復代碼編譯的手法,不僅可以提高開發效率,也為代碼的維護提供了更加高效,實用的途徑。

在C#中,有很多方式可以復用我們已經寫好的代碼。

最常見的“引用”,在一段代碼最開始的地方寫上的using語句,將已經寫好的類庫與正在編寫的代碼聯系在了一起。但在這里,我并不希望從這個角度去理解復用。作為開發人員,我們應該看到的是,抽象帶來的代碼復用方面的價值。

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

目光轉向單個項目。做好了歸類,或許在你的設計圖紙上就已經有了很直接,清晰有序的類圖。接下來為行為做抽象,形成不同的接口。

如果想要完成某個簡單的動作(比如將某種類型轉換成另一種類型的顯式方法調用),卻不知道什么方法可以完成,是不是需要去翻閱成噸的文檔,查看在哪個類型下面有對應的方法呢?答案是不一定。如果我們在設計最初,就把眾多類型中(或者理解成不同類中)完成相同任務的方法抽象成一個接口(或者說讓他們實現同一個接口),那么工作變得簡單了。

我們只需要把包含這個接口的類庫引用進來,然后直接調用實現接口的方法就行了。這是一種非常有序的代碼復用的辦法。

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

泛型的出現提供了另一種代碼復用的方案:將對不同類型,相同的操作的被操作類型用泛型替代。泛型就像我們上學的時候經常用到的X和Y,用于指代“某個數”,或者理解成某個“數學元素”。在C#當中,泛型可以用來指代某個“編程元素”。

如果采用泛型,代碼將變得像數學公式一樣,具有強大的通用性。在擁有泛型的底層上開發,將變得隨心所欲,甚至不需要考慮當前是對什么樣的數據在做處理。結合合理的數據類型轉換,我們甚至可以完成對不同類型數據的統一處理(其實這只是我的一個想法,有待實施)。

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,353評論 25 708
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 喜歡在一個安閑的時刻 去逛一條安閑的街 就這么沒有目的的晃悠 可能就會碰到一家安閑的店 進去坐坐 帶著一顆安閑的心
    華枝春滿5339閱讀 276評論 2 8
  • 逢年過節,年紀尚小的孩子們最高興的莫過于收壓歲錢了。 記得那時每年的初一都起得很早,早早地換上新衣服、早早地吃了餃...
    陳禹同Bruce閱讀 522評論 2 3
  • 也許有人會問:“什么是幸福?”我想幸福可以是在一瞬間,也可以是一輩子那么長,一個釋懷的笑容可以是他人眼中明媚的幸福...
    憶往昔注孤生閱讀 162評論 0 0