一些可以用來保持代碼解耦的技術


這是一篇翻譯的文章

這里的正交是指你的設計實現解耦(decoupled):每一個部分都相互獨立,一個部分的改變不會影響其他部分。

  保持你的代碼解耦

  編寫封閉的(shy)代碼——是指一個模塊不會向其他模塊顯露出任何不必要的東西,並且也不會依賴於其他模塊的實現。如果你需要改變一個對象的狀態(描述),那就讓這個對象為你完成此操作。通過這個方法你的代碼任然獨立於其他代碼的實現並且你的項目有很大幾率保持正交。

  避免使用全局變量

  每當你的代碼引用全局變量,它就會通過這個變量使得自己和其它部分聯系起來。盡管你只是試圖去讀這個全局變量仍有可能導致錯誤(例如,如果你突然需要改變代碼變成多線程)。總而言之,如果你明確地把要求的contex(語境)傳入你的模塊中,你的代碼將很容易理解和維護。在面向對象的結構中,context(語境)經常會被作為參數傳遞給對象構造函數。在其他代碼中,你能夠創建一個包含context的結構並且把其他引用傳遞給他們。

  The Singleton pattern(單例模式)是確保對於一個特定的類只有一個對象實例與之對應。很多人使用這些singleton object(單例對象)作為一種全局變量(特別是像JAVA語言,要不就是不支持全局概念的語言 )。也要小心singletons——他們可能導致不必要的連鎖。

  避免相似函數

  你經常會遇到一系列看起來相似的函數——也許他們在開頭和結尾共用同一段代碼,但是他們每一個的核心算法都不同。 重復代碼是結構性問題的一種症狀。看一看設計模式中的策略模式會是更好的補充。

養成一個經常批判性思維看待自己代碼的習慣。尋找任何一個機會去重新組織代碼,提高它的結構和不相關性。這個過程稱為重構。

     如何檢測自己的程序是否解耦?

 1. 你可以通過對你的項目的每一個模塊進行單元測試,在測試的過程中你就可以發現當前模塊對於是否是獨立的,也就是它的運行對於其他模塊的依賴程度。

  2. 當你的程序出現bug時,這是一個絕好的機會去評估你的程序的耦合性,你去修復bug的時候,是只改變了一個模塊還是對整個系統或大部分代碼都進行了修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM