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