摘要:如果看不懂的話,可以在評論區(qū)中提問,我會第一時間回答你無論何時我一直都在嗯哼該文章屬于編程中的那些經(jīng)典套路設計模式匯總系列
在正式閱讀前,我先談談我們該用什么姿勢和心態(tài)學習設計模式:
如果你還沒有過多的編程經(jīng)驗(泛指半年以下),我建議你把它當做小說來看,能看懂多少是多少,因為半年以下經(jīng)驗的程序員用到設計模式的情況只會出現(xiàn)在面試上,至于實際工作中?相對來說這部分不會由你負責。
如果你已經(jīng)對編程,對模塊結構有一些感覺了(一年經(jīng)驗以上),我相信你能夠看懂了,但能理解到什么程度,就看你自己的理解能力了。但是你要明白設計模式是那些大牛們研究出來的套路,是面向”人民大眾”,它絕對不會太難。
如果你已經(jīng)資深程序員、架構師,那么你可以忽略我這篇文章了,當然你可以考慮在評論中指出我的錯誤。
此系列均以PHP語言實現(xiàn),不過大多數(shù)設計模式具有語言無關性,你可以用PHP或者JAVA寫一個設計模式,你也可以用JavaScript寫一個設計模式。
定義:在軟件開發(fā)過程中,經(jīng)常出現(xiàn)的典型場景的典型解決方案,稱為設計模式
回歸題目,設計模式其實就是一個套路,只是專業(yè)人士們把它們稱之為”設計模式”,你愿意的話可以稱它們?yōu)椤本幊讨械囊恍┖馨舻模梢怨?jié)省維護成本,可拓展性極強的套路”。
理論上最符合規(guī)范的設計模式會具備以下特性:
可拓展性強,可維護性強,復用性強,杜絕”牽一發(fā)而動全身”的情況出現(xiàn)。
代碼 很少/無 耦合,遵循面向?qū)ο笪宕笤瓌t,最重要的是符合單一職責(S)和開放封閉原則(O):
**S – 單一職責原則** **O – 開放封閉原則** L – 里氏替換原則 I – 接口隔離原則 D – 依賴倒置原則
屬于面向接口開發(fā)而不是面向?qū)ο?br>清晰易懂
學習設計模式的意義:
更深入的理解面向?qū)?象的思想.
有利于開發(fā)出擴展性強的程序
面試時的重要考察方面
以下是具體的設計模式講解,為了保證簡單易懂,文章的篇幅普遍保持在五分鐘內(nèi)可閱讀完。
如果無法全部理解的同學,可以優(yōu)先看工廠模式,單例模式,觀察者模式,這三者模式我認為我比較常用的。
單例模式
簡單工廠模式
工廠模式
觀察者模式
適配器模式
橋接模式
策略模式
責任鏈模式
裝飾器模式
我認為設計模式的產(chǎn)生是基于面向?qū)ο笕匦晕逶瓌t而產(chǎn)生的,你可以順帶看看這方面的知識。
最后提醒一點,設計模式中具體的代碼是項目的不同而不同的,沒必要死守著這套規(guī)范(也就是說我例子里的代碼你可以盡情改,只要符合你自己的項目需求就好),設計模式出現(xiàn)的目的是為了代碼可讀性,拓展性更強而并不是為了展示你的編程技巧,一切都是為了人能看懂,服務器運行起來效率高,后期改代碼的時候不會那么麻煩
等目的 而服務的,切勿舍本逐末!
希望你全部都能看懂,那證明我的語言表述能力還不錯。如果看不懂的話,可以在評論區(qū)中提問,我會第一時間回答你!無論何時我一直都在~嗯哼
該文章屬于《編程中的那些經(jīng)典套路——設計模式匯總》系列
文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/21693.html
摘要:該文章屬于編程中的那些經(jīng)典套路設計模式匯總系列,并且以下內(nèi)容基于語言前面我們寫了簡單工廠模式,編程中的那些套路關于簡單工廠模式,但簡單工廠模式有一些不足違反開放封閉原則,所以需要設計出一套更加規(guī)范的設計模式。 該文章屬于《編程中的那些經(jīng)典套路——設計模式匯總》系列,并且以下內(nèi)容基于語言PHP 前面我們寫了簡單工廠模式,《編程中的那些套路——關于簡單工廠模式》,但簡單工廠模式有一些不足(...
該文章屬于《編程中的那些經(jīng)典套路——設計模式匯總》系列,并且以下內(nèi)容基于語言PHP 今天來談談責任鏈模式,乍一聽責任鏈模式好像很高級的一樣,但是相信我,其實每位天朝的同學都十分熟悉這個模式,責任鏈模式,就好像中國的官場制度一樣,每一個級別的權利都區(qū)分的很細,舉個生活中的栗子: 村委不能越級去替鎮(zhèn)委辦事情,如果村委無法解決,只能向上求助鎮(zhèn)委 鎮(zhèn)委不能越級去替市委辦事情,如果鎮(zhèn)委無法解決,只能向上求...
摘要:簡單工廠模式就是遵循了這一原則,它讓不同職責的類各司其職。重點來了,簡單工廠模式的不足但是簡單工廠模式有一個不足,雖然它遵循了單一職責原則,但它違反了另一條同樣很重要的原則開放封閉原則。 該文章屬于《編程中的那些經(jīng)典套路——設計模式匯總》系列,并且以下內(nèi)容基于語言PHP 面向?qū)ο笪宕笤瓌t中有一點非常重要的原則:單一職責原則。 簡單工廠模式就是遵循了這一原則,它讓不同職責的類各司其職。 ...
該文章屬于《編程中的那些經(jīng)典套路——設計模式匯總》系列,并且以下內(nèi)容基于語言PHP 在設計模式中,單例模式和工廠模式)可以說是使用的最普遍的設計模式了,所以掌握此種模式尤為重要。 單例模式一般使用在資源共享和需要控制資源的情況下。 例如:購物車,回收站,數(shù)據(jù)庫連接池,計數(shù)器,配置文件共享等所有項目中只需要存在一個的模塊,你都可以采用單例模式。 單例模式的好處就在于當前進程只產(chǎn)生一個對象(或者叫...
摘要:我們應該寫一段拓展性強與維護性較強的代碼,由此衍生出觀察者模式。 該文章屬于《編程中的那些經(jīng)典套路——設計模式匯總》系列,并且以下內(nèi)容基于語言PHP 今天我們來談談觀察者模式,這是一個經(jīng)常用到的設計模式。 讓我們想象一個場景:一個網(wǎng)站有不同等級區(qū)域的用戶,不同等級的的用戶登錄后可以獲得對應的服務(一級用戶登錄后獲得一級服務,二級用戶登錄后獲得二級服務,…以此類推)。那么我們?nèi)绾螌戇@段業(yè)...