說明:封裝函數是為了獲得單個功能小項。
1、帶參函數:比如某個帶參數的aa(12,34);aa示例函數void aa(int a,int b){...},可能會在很多地方出現,形參也可能改變,那么就需要將其封裝一個功能函數,作為一個功能項,函數命名為bb,示例為void bb(void){aa(12,34);}
2、單獨代碼行:比如某幾行代碼方法出現多次,u8aa = 1;u16bb = 2;u32cc = 3;,那么將其封裝成一個功能函數,作為一個功能項,這樣到時候改動起來方便,有時候甚至一句話,調用多次的也盡量封裝成一個功能,所謂功能小項。
3、第三方庫函數調用:在某個SDK中比如藍牙廣播xxx_ble_start和藍牙停止廣播xxx_ble_stop,被封裝在庫里,在應用中多處引用,雖然也是一句的事,但是是官方函數庫,可能需要補充部分邏輯,也未來便于修改的,封裝函數,多處調用更要封裝為函數,好處是靈活,換家sdk照樣能用。
4、局部全局變量:比如int aa = 0,封裝成void Setaa(int I32V){aa = I32V}和int Getaa(void){return aa},變量封裝成函數后,就變成功能了,在需要打印值時加打印方便,另外當需要變量不起作用時,返回1或者0也方便。
總結:封裝函數不是目的,目的是為了將一個一個功能獨立出來,以功能為單位,而不是以代碼行為單位,這個維護和開發都相當容易很多。抓一個重復的點,和抓一個獨立的面,維護起來不是一個數量級的。比如說汽車組裝是組裝一個發動機、一套沙發等,而不是組裝一個一個發動機內部的一顆零件,一個沙發上的一塊布片,甚至發動機也不是能開發的,可能是買的。函數是將一個相對完整的功能展示出來處理。