物件導向健身操

2021-09-01 14:31:02 字數 1467 閱讀 7975

本文內容來自《軟體開發沉思錄》

優秀設計背後的七條核心概念:內聚性,松耦合,零重複,封裝,可測試性,可讀性,單一職責。

採用這些規則的關鍵是,使用物件導向的思考。

動機 :龐大的方法往往缺少內聚性,乙個常見的原則是將方法控制著5 行以內(不包括入參檢查)。你可以嘗試讓每個方法只做一件事情——每個方法只保護乙個控制結構或乙個**塊。

方法 :利用ide 的抽取方法的功能,不斷的抽取方法中的行為,直到乙個方法只有一級縮排位置。

「運用這些規則的技能師一種藝術,它能將程式設計師提公升到乙個新的高度。」

動機 :複雜的條件判決難於理解,而且易產生重複**。

方法 :對於簡單判斷可以使用衛語句和提前返回,對於複雜的條件判斷則可以使用多型。另外也可以使用策略模式。

動機 :整數只是代表乙個數量,沒有實際的含義。用類來表示原生型別,比如年,月,日等。這樣可以進行嚴格的型別檢查。

動機 :如果一行中含有多個「. 」,則說明很多職責的位置放置錯了。嘗試讓物件為你做一些事情,而不要窺視物件內部的細節。封裝的含義就是,不要讓類的邊界跨入到它不應該知道的型別中。

動機 :縮寫的原因:1 )一遍一遍的敲打同樣的單詞,則可能是因為某個方法呼叫過於頻繁——要消除一下重複。 2)方法名字太長——可能是職責沒有放在應該在的位置或者有確實的類。

方法 :所有實體物件的名稱都只能包含一到兩個單詞,不要使用縮寫。

動機 :超過50 行的類所做的事情通常都不止乙個。這會導致他們難以理解和重用。這意味著每個類的長度不能超過50 行。每個包所包含的檔案不超過 10 個。

動機 :將乙個物件從擁有大量屬性的狀態,解構成分層次的,相互關聯的多個物件,會直接產生乙個更實用的物件模型。將乙個複雜的大的物件,分解成多個簡單的物件。

方法 :可以將例項變數按照相關性分離在兩個部分中;可以建立乙個新的物件來封裝兩個已有的例項變數。

集合的概念應該是一類例項的集合。比如,定時器物件的集合——包括所有的定時器。我一般是放在定時器類中,然後使用static 來表示集合。看了這個方法要改一下了。

任何包含集合的類都不能再包含其他的成員變數。每個集合都被封裝在自己的類中。集合其實是一種應用廣泛的原生型別。

geter/setter/proerty會對物件的封裝性找出破壞。

在嚴格封裝的邊界背後,真正的動機是迫使程式設計師在完成編碼後,一定要為這段**的行為找到乙個合適的位置,確保它在物件模型中的唯一性。

這樣可以減少重複性的差錯,以及在新增新特性的時候,可以在乙個更合適的位置引入變化。

這九條原則可以作為對物件導向優秀設計的訓練(可以通過乙個小的專案),但是,在實際的過程中不可以教條的應用上面的原則。引用p.j. plauger 的話:

「你在應用某種設計方法的時候越教條化,你所能解決的現實問題就會越少。請把設計看出是乙個險惡的,雜亂的和啟發式的過程(沒有教條化的規則可以遵循,能夠巧好解決現實問題的方案才是最佳的方案)。不要停留於你所想到的第一套方案,而是去尋求合作,探求簡潔性,在需要的時候做出原型,迭代,並進一步迭代。你將對你的設計成果感到滿意。」

物件健身操 Thought Works文集

最近看到了一本非常值得閱讀的書 軟體開發沉思錄 thought works 文集 13篇美文薈萃軟體開發精華,來自軟體界思想領袖們的經驗心得,為你開啟敏捷開發之門。其中有一篇文章非 常經典,讓我愛不釋手。現在我把裡面的部分思想摘錄於此,以此來警戒自己。九步邁向優秀軟體設計 物件導向程式設計一直在鼓勵...

IT人的IT健身操

it業在改變我們生活方式的同時,也帶來了新的健康隱患。長時間地坐在電腦前工作,容易引起肩背肌肉痠痛 皮下脂肪堆積 肌肉鬆弛等症狀,如果不及時採取措施,很容易引起病變。為了防止這種 新型疾病 的侵入,我們特別請來健美操專家為你設計編排了這套健身操,你不妨在工作間隙試著練上一兩招,對緩解肌肉痠痛,調節血...

滑膜炎健身操

我是習慣性膝蓋扭傷,好多年打球打的,今年確證了滑膜炎,30歲,170斤,175身高,年輕的時候不注意,現在體重大了,膝蓋負荷太大,結果就。慢慢鍛鍊吧,這個技術文件怎麼樣,哈哈 鍛鍊 一套 展膝操 疏散膝關節積液 1 高位馬步 兩膝稍彎曲,以膝蓋不超過腳尖為宜。靜蹲不動,兩手平舉,目視前方,堅持1分鐘...