設計模式學習心得 開篇

2022-04-17 03:01:15 字數 1479 閱讀 8943

做了幾年的開發工作,還停留在開發工程師的階段,想著不能一直這樣下去,覺得要為自己以後做打算了,開發常規兩條路:專案管理,架構師,我選擇架構師。之 所以這樣選,這是保守的乙個選擇,用格力的廣告「掌握核心科技」,只有掌握了核心技術,核心業務,才能佔據主導角色。當然要成為乙個合格的架構師,需要學 習的,掌握的東西要非常多,非常全面,也有很多條件,但這是我選架構師的乙個最重要條件。既然已經決定了,就要學習自己欠缺的。設計模式就是之一,於是有 了這系列文章,記錄學習過程中一些心得和總結。

一:為什麼要用設計模式

在我進入這家電商前,因為做得都是些小專案,設計模式基本用不上。到現在公司後,還是一樣,不是說設計模式沒用武之地,而是開發任務重,在一次次修改功能, 增加功能過程中,雖然知道如果這裡封裝好點,就不用費力維護了。但為了按時完成任務,誰管你維護難不難。結果可想而知。

就是這樣設計模式為了系統的可維護性,可擴充套件,可復用。

二:重新認識物件導向

從巨集觀層看:物件導向的構建方式更實用軟體的變化,把變化帶來的影響降到最低。

從微觀層看:物件導向更強調物件的責任,新的變化不會影響原物件**的變動。

物件是什麼:1,擁有某種責任的抽象。2,可以被其他物件使用的公共介面。3,擁有屬性和方法。

三:設計原則

1:針對介面程式設計,而不是實現

客戶(呼叫方或客戶程式)無需知道所使用物件的特定型別,只需要知道物件擁有客戶所期望的介面。

2:優先使用物件組合,而不是繼承

繼承在某種程度上破壞了封裝性,子類和父類的耦合度高;而物件組合只要求被組合的物件具有良好定義的藉口,耦合度低。

3:封裝變化點

使用封裝來建立物件之間的分界層,讓設計者可以在分界層的一側進行修改,而不會對另外一側產生不良的影響,甚至不需要修改另一側,從而實現層次間的松耦合。

4:模式從重構得來

設計模式的使用不宜先入為主,一開始就使用設計模式是對設計模式最大的誤用。沒有一步到位的設計,設計模式不是演算法,直接拿來就可以用。敏捷軟體開發實踐提倡的「refactoring to patterns」(重構與模式)是目前普遍公認的最好的使用設計模式的方法。

四:更具體的設計原則

1:單一職責(srp)

乙個類應該僅有乙個引起他變化的原因。

2:開放封閉原則

類模組應該是可以擴充套件的,但是不可以修改(對擴充套件開放,對修改封閉)。

3:黎克特制替換原則

子類必須能夠替換他的父類。

4:依賴倒置原則

高層模組不應該依賴低層模組,二者都應該依賴於抽象。

抽象不應該依賴於實現細節,實現細節應該依賴於抽象。

5:介面隔離原則

不應該強迫客戶程式依賴於他們不用的方法。

五:模式的分類

1:建立型,負責物件的建立

2:結構性,處理類與物件的組合。

3:行為型,類與物件互動中的職責分配。

設計模式學習心得

物件導向的設計原則 1.單一職責原則 srp 每個物件應該只有一種責任。可以達到公用的方法,可以放入乙個類中,有差異但相似的方法,可以根據差異單獨實現。例如 角色 戰士,法師 攻擊 物理,法術 防禦。2.開閉原則 ocp 設計程式時對功能擴充套件開放,對修改關閉。進行功能擴充套件時不需要修改源 更利...

Java設計模式學習心得

1.從理解設計的幾大原則開始 1 open close principle 開 程式可拓展,熱插拔形式 閉 禁止對上一版本的程式進行 修改 原則,通常要用到介面達到這種效果。2 liskov substitution principle lsp黎克特制替換原則,任何可以使用基類的地方均可以使用其子類...

《大話設計模式》學習心得系列(二)

物件導向基礎 2 本博文意在鞏固基礎知識,高手請繞過。物件導向的三大特徵 封裝 繼承 多型 什麼是封裝?每個物件都包含它能進行操作所需要的所有資訊,這個特性稱為封裝,因此物件不必依賴其他物件來完成自己的操作。這樣方法和屬性包含在類中,通過類的例項來實現。類將資料和運算元據的方法結合成乙個單位。在設計...