C#方法封裝與重構(gòu)

C#作為一個(gè)完全面向?qū)ο蟮恼Z(yǔ)言,有個(gè)特性很重要但是往往會(huì)不重視,而不重視的結(jié)果就會(huì)造成代碼雜亂難以解讀、維護(hù)。這個(gè)特性就是封裝。

這里不是大談C#的封裝,我只講一個(gè),關(guān)于方法封裝的一些問(wèn)題。

方法可以說(shuō)是類(lèi)或者對(duì)象的一些業(yè)務(wù)邏輯,那在什么情況下需要封裝成方法呢:

1、功能相對(duì)獨(dú)立

2、多處復(fù)用

3、一個(gè)方法體過(guò)于冗余或者實(shí)現(xiàn)邏輯過(guò)多

4、公開(kāi)處理內(nèi)部數(shù)據(jù)接口(也可以用屬性)

如果滿足上面的任何一個(gè)條件,就可以考慮封成獨(dú)立的方法了,這里又涉及到一個(gè)概念——重構(gòu)。好的代碼都是重構(gòu)出來(lái)的,沒(méi)有誰(shuí)能一步登天(起碼我們這些小菜鳥(niǎo)做不到)。代碼的雜亂很大一部分原因是由于作者的思維、邏輯混亂,復(fù)雜的問(wèn)題簡(jiǎn)單化了,或者簡(jiǎn)單的問(wèn)題復(fù)雜化了。所以重構(gòu)的第一步是要理清自己的邏輯,邏輯清楚了,算法自然就出來(lái)了,接下來(lái)做的就是把算法用代碼實(shí)現(xiàn)的問(wèn)題了。

對(duì)于重構(gòu)有個(gè)原則:需而為之,不需而不為。重構(gòu)也不盡然都是好,畢竟一開(kāi)始的想法很有可能是相當(dāng)不錯(cuò)的,如果要推翻,得有充足的理由,所以,重構(gòu)也是有成本的,很可能又引入一些新的bug也難說(shuō)。就我個(gè)人而言,是個(gè)比較喜歡折騰的熊孩子,頂多折騰了半天回到原點(diǎn),不過(guò)折騰多了也會(huì)有些門(mén)道的。建議大家多折騰,丑話說(shuō)在前頭,折騰前做好備份~

這里也說(shuō)一下對(duì)方法的要求,當(dāng)然是整潔的方法要求:

1、短小,盡量不要超過(guò)一屏

2、獨(dú)立,一個(gè)方法只做一件事

3、方法名要見(jiàn)名知意、風(fēng)格一致,前者讓人一看就知道方法做什么,后者別人可以推斷這個(gè)函數(shù)的作用

4、參數(shù)不要超過(guò)3個(gè),超過(guò)的話就提取為對(duì)象。

北大青鳥(niǎo)網(wǎng)上報(bào)名
北大青鳥(niǎo)招生簡(jiǎn)章