???
讀《代碼大全》筆記 -- 保持松散耦合
在上學的時候就聽老師說,寫程序要做到低耦合。這話是牢牢的記在心里了(我還算是個乖學生)。可是在具體的編程過程中有犯糗了。犯糗原因就是對于常見耦合分辨不清、不知道在我的應用中那些耦合可以接受、那些耦合在特定場合可以接受、那些耦合要盡量避免、最重要的就是不同的耦合在代碼中如何表現會有如何的影響。
還好這些問題近期在一本叫《代碼大全》的書里面找到了(插一句,如果你還沒有聽說過這本書,趕緊,一定要趕緊打開Google,去Google一下)。
書中提到(中文版 p101)了常見的耦合的種類有如下幾種:
l????? 簡單數據參數耦合
l????? 簡單對象耦合
l????? 對象參數耦合
l????? 語義上的耦合
對于簡單數據參數耦合比對象參數耦合更有靈活性書中在耦合標準-靈活性(p100)中進行了描述。并得出對象參數耦合要比簡單數據參數耦合的耦合程度要高。
但是在使用的過程中發現很多場合如果使用“簡單數據參數”的話,函數的參賽數列表會很長。這個聲明的時候倒是沒什么,但是在調用的時候就有可能寫錯參數的個數(這個還好 ide會告訴我們),參數寫的順序不正確(這個就比較郁悶了,容易出bug而且還不容易找)。
我想如果能用“簡單數據參數”就盡量使用,在不同的場合考慮使用“對象參數”。為了這個問題我曾經和我的同事狂吵過。所以印象很深。
?
其實最要命的最難處理的是那些“語義上的耦合”。別人我不知道。看完了書中的定義,在回想自己以前寫過的代碼。很多都犯了“語義上的耦合”,并且給項目帶來了很多不便。丟人啊。