1. 程式人生 > >一些可以用來保持正交的技術

一些可以用來保持正交的技術

一個 但是 要求 每一個 單例對象 相關 解耦 全局 系列

這是一篇翻譯的文章

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

  保持你的代碼解耦

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

  避免使用全局變量

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

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

  避免相似函數

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

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

一些可以用來保持正交的技術