C#作為一個(gè)完全面向?qū)ο蟮恼Z言,有個(gè)特性很重要但是往往會(huì)不重視,而不重視的結(jié)果就會(huì)造成代碼雜亂難以解讀、維護(hù)。這個(gè)特性就是封裝。
這里不是大談C#的封裝,我只講一個(gè),關(guān)于方法封裝的一些問題。
方法可以說是類或者對(duì)象的一些業(yè)務(wù)邏輯,那在什么情況下需要封裝成方法呢:
1、功能相對(duì)獨(dú)立
2、多處復(fù)用
3、一個(gè)方法體過于冗余或者實(shí)現(xiàn)邏輯過多
4、公開處理內(nèi)部數(shù)據(jù)接口(也可以用屬性)
如果滿足上面的任何一個(gè)條件,就可以考慮封成獨(dú)立的方法了,這里又涉及到一個(gè)概念——重構(gòu)。好的代碼都是重構(gòu)出來的,沒有誰能一步登天(起碼我們這些小菜鳥做不到)。代碼的雜亂很大一部分原因是由于作者的思維、邏輯混亂,復(fù)雜的問題簡單化了,或者簡單的問題復(fù)雜化了。所以重構(gòu)的第一步是要理清自己的邏輯,邏輯清楚了,算法自然就出來了,接下來做的就是把算法用代碼實(shí)現(xiàn)的問題了。
對(duì)于重構(gòu)有個(gè)原則:需而為之,不需而不為。重構(gòu)也不盡然都是好,畢竟一開始的想法很有可能是相當(dāng)不錯(cuò)的,如果要推翻,得有充足的理由,所以,重構(gòu)也是有成本的,很可能又引入一些新的bug也難說。就我個(gè)人而言,是個(gè)比較喜歡折騰的熊孩子,頂多折騰了半天回到原點(diǎn),不過折騰多了也會(huì)有些門道的。建議大家多折騰,丑話說在前頭,折騰前做好備份~
這里也說一下對(duì)方法的要求,當(dāng)然是整潔的方法要求:
1、短小,盡量不要超過一屏
2、獨(dú)立,一個(gè)方法只做一件事
3、方法名要見名知意、風(fēng)格一致,前者讓人一看就知道方法做什么,后者別人可以推斷這個(gè)函數(shù)的作用
4、參數(shù)不要超過3個(gè),超過的話就提取為對(duì)象。