編程中的那些經典套路——設計模式彙總

在正式閱讀前,我先談談咱們該用什麼姿式和心態學習設計模式:程序員

  • 若是你尚未過多的編程經驗(泛指半年如下),我建議你把它當作小說來看,能看懂多少是多少,由於半年如下經驗的程序員用到設計模式的狀況只會出如今面試上,至於實際工做中?相對來講這部分不會由你負責。面試

  • 若是你已經對編程,對模塊結構有一些感受了(一年經驗以上),我相信你可以看懂了,但能理解到什麼程度,就看你本身的理解能力了。可是你要明白設計模式是那些大牛們研究出來的套路,是面向」人民大衆」,它絕對不會太難。編程

  • 若是你已經資深程序員、架構師,那麼你能夠忽略我這篇文章了,固然你能夠考慮在評論中指出個人錯誤。segmentfault

此係列均以PHP語言實現,不過大多數設計模式具備語言無關性,你能夠用PHP或者JAVA寫一個設計模式,你也能夠用JavaScript寫一個設計模式。設計模式

定義:在軟件開發過程當中,常常出現的典型場景的典型解決方案,稱爲設計模式服務器

迴歸題目,設計模式其實就是一個套路,只是專業人士們把它們稱之爲」設計模式」,你願意的話能夠稱它們爲」編程中的一些很棒的,能夠節省維護成本,可拓展性極強的套路」。架構

理論上最符合規範的設計模式會具有如下特性:學習

  • 可拓展性強,可維護性強,複用性強,杜絕」牽一髮而動全身」的狀況出現。設計

  • 代碼 不多/無 耦合,遵循面向對象五大原則,最重要的是符合單一職責(S)開放封閉原則(O)code

    **S – 單一職責原則**
    **O – 開放封閉原則**
    L – 里氏替換原則
    I – 接口隔離原則
    D – 依賴倒置原則

屬於面向接口開發而不是面向對象
清晰易懂
學習設計模式的意義:

  1. 更深刻的理解面向對1象的思想.

  2. 有利於開發出擴展性強的程序

  3. 面試時的重要考察方面

如下是具體的設計模式講解,爲了保證簡單易懂,文章的篇幅廣泛保持在五分鐘內可閱讀完。

若是沒法所有理解的同窗,能夠優先看工廠模式單例模式觀察者模式,這三者模式我認爲我比較經常使用的。

單例模式

簡單工廠模式

工廠模式

觀察者模式

適配器模式

橋接模式

策略模式

責任鏈模式

裝飾器模式

我認爲設計模式的產生是基於面向對象三特性五原則而產生的,你能夠順帶看看這方面的知識。

最後提醒一點,設計模式中具體的代碼是項目的不一樣而不一樣的,不必死守着這套規範(也就是說我例子裏的代碼你能夠盡情改,只要符合你本身的項目需求就好),設計模式出現的目的是爲了代碼可讀性,拓展性更強而並非爲了展現你的編程技巧,一切都是爲了人能看懂,服務器運行起來效率高,後期改代碼的時候不會那麼麻煩
等目的 而服務的,切勿捨本逐末!

但願你所有都能看懂,那證實個人語言表述能力還不錯。若是看不懂的話,能夠在評論區中提問,我會第一時間回答你!不管什麼時候我一直都在~嗯哼

該文章屬於《編程中的那些經典套路——設計模式彙總》系列

相關文章
相關標籤/搜索