1. 程式人生 > >如何合理封裝你的輪子、飛機、大炮(以封裝OkHttp為例)

如何合理封裝你的輪子、飛機、大炮(以封裝OkHttp為例)

前言

對於程式設計師來說,很多時候,我們都在造房子,從學會框架或者是學會構建整個專案之後,慢慢的我們就會覺得自己在做的事情是一種重複勞動,很多時候只不過是換個面孔而已。而更快的造房子,造好看的房子可能是進一步你想要做的。 封裝 可能是你要學會的第一步,它能幫你學會造出你需要的合適的工具,而這些工具能幫你更快的造出你想要的房子。

封裝的定義

我對封裝的定義 ———— 將專案中需要多次使用,或者是重複勞動,或者是複雜且難看的程式碼,打包在一起(抽離出來)作為一個通用的東西來使用

封裝可以是對自己寫的程式碼進行封裝,也可以是對別人寫的工具或者是框架進行封裝,都可以。俗話說的好,寫程式碼就是:要不就是將別人的輪子拿來用,要不就自己造輪子給別人用。別人的輪子不夠用,就改裝成飛機大炮自己用。

封裝的意義

1、減少重複程式碼,讓程式碼看起來整齊好看 2、減少重複開發,讓開發速度變快 3... 這裡不列舉了,說白了向面試官吹牛也可以算是意義吧...

封裝的步驟

1、找到需要封裝的程式碼(封裝永遠不是空想出來的) 可能是你專案本身需要封裝,又或是你看別人工具想要封裝...

2、列出封裝的目標 一開始我建議還是列出來靠譜,因為這樣不會讓你忘記最終的目標是什麼。

3、封裝 然後就開始做吧!

4、測試 寫出你認為所有的在實際中的測試用例單元測試來測試你的工具

5、優化 對不合理的地方進行優化,對用的不爽的地方進行優化

6、打包 打包釋出,到實際的生產中去使用吧

以OkHttp為例進行封裝

---如果你不知道okhttp那麼你可以去了解一下再往下看。

在實際的專案中如果要傳送http請求,那麼我喜歡使用okhttp工具來完成這個事情,而實際使用的時候,我們每次請求都需要構建整個請求,顯得非常麻煩,每次都需要對請求的引數和返回的引數都進行構建,也很麻煩,所以我覺得有必要封裝一下

目標

我只是封裝三種類型的請求: 1、get請求 2、post請求 json格式 3、post請求 form格式 請求返回格式都是為json格式

要求: 呼叫請求方法,輸入url地址、請求物件,輸出請求返回的物件

封裝 + 測試 + 優化

(第一步最關鍵:先上網找找有沒有合適的,別人已經封裝過的資訊,一方面是看看是否適合自己使用,另一方面,即使不能符合自己,那也可以看看是否能從中找到一些可以值得借鑑的地方) 整個過程我描述一下: 1、先把所有的程式碼寫在了一個類裡面 2、然後分離出需要的工具介面 3、然後分離內部需要的方法 4、抽離重複的部分 5、針對傳入物件進行泛型優化 6、編寫單元測試進行測試 7、編寫註釋和使用markdown

總結

1、這裡封裝是很個性化的一種封裝,這樣的封裝多數是一種定製化的工具,你自己用會覺得很方便。 2、封裝會用到很多技術:泛型、反射... 3、封裝需要考慮的點很多:因為作為一個工具,你需要考慮到很多人的使用情況,很多測試都是需要做的。 4、封裝的優化很多時候會考慮使用設計模式讓整體更加優雅。 5、一開始是封裝一些別人寫的工具,後面是封裝一些自己寫的程式碼,在後面是封裝一些框架。 6、越原始的封裝,封裝到最後依賴的越少,封裝最後的包越小,使用起來越來越方便。

這裡是對封裝的一個舉例,封裝的工具本身不一定對你適合,你需要封裝屬於你自己的工具,如果你有好的建議,趕緊砸過來吧。