設計模式精解-第一章-面向對象範式(一)

      設計模式是個好東西,爲什麼好呢?目前不清楚,一直想學.沒時間.最近買了<設計模式精解>.開始讀書.

      本書的第一章是介紹面向對象範式.通過和另外一種常見的範式-標準結構化程序設計進行對比,來讓讀者更好的理解面向對象範式.

      我們先來看看標準結構化程序設計範式是如何來解決問題的,也就是如何編程的.如果我們拿到一個任務,爲了完成任務,我們很自然的把任務分解,分解到每個部分都很容易完成,然後按步驟完成各個部分,總的任務也就完成了.這本書舉了個編程的例子.其實我們處理很多事情都是分解來做的,比如做飯,洗衣服等等.

      這種自然而然的解決問題的辦法簡單實用,但是這個方法的缺點是什麼呢?答案是,他不能處理變化. 對於軟件開發,一個項目中可以確定的是,需求總是會變化.我們不能逃避變化.而是要找到一種辦法來適應變化.許多軟件bug來自代碼的變化.因此我們需要不斷的改進開發過程,以便更好的應付需求的變化.

      標準結構化程序設計範式,如何來處理變化呢? 我們可以使用模塊化來包容變化.把可能變化的部分封裝成一個模塊,然後當產生變化的時候,就更改這個模塊就可以了.模塊化可以讓代碼清晰,容易理解和維護,但是沒有辦法應付所有可能出現的變化.另外,模塊化還有兩個問題,低內聚,高耦合.

      內聚度-程序中的操作之間聯繫緊密的程度.也就是子程序內部成分之間相互聯繫的程度.

(廣告 芙蓉姐姐 芙蓉一出,誰與爭鋒,千秋萬載,一統江湖!)

      耦合度-兩個子程序之間聯繫的強度.

      耦合度和內聚度是成反比的.強內聚的,也就是內部完整性越高的子程序.和其他子程序之間的聯繫越小,直接,可見和靈活(松耦合).而這個是我們的目標.

      還有一個問題是函數的副作用,改變函數引起一系列問題.而這個的原因是我們設計函數的時候只是關注功能.這個導致一處改動會引起雪球效應.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章