本篇文章帶大家介紹分享PHP設計模式學習摘要。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
專注於PHP、MySQL、Linux與前端開發,有興趣的感謝點個關注喲! ! !文章整理在GitHub,主要包含的技術有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具資源等相關理論知識、面試題和實戰內容。
本文將分享給你一個超實用的設計模式學習網站。在學習設計模式之前,首先我們需要知道為什麼要學習設計模式?如何有正確的、高效率的學習設計模式?下圖羅列出個人在學習設計模式過程中的一個大致學習想法:
設計模式是軟體設計中常見問題的典型解決方案。它們就像是能根據需求進行調整的預製藍圖, 可用來解決程式碼中反覆出現的設計問題。
設計模式與方法或函式庫的使用方式不同, 你很難直接在自己的程式中套用某個設計模式。模式並不是一段特定的程式碼, 而是解決特定問題的一般性概念。你可以根據模式來實現符合自己程式實際所需的解決方案。
人們常常會混淆模式和演算法, 因為兩者在概念上都是已知特定問題的典型解決方案。但演算法總是明確定義達成特定目標所需的一系列步驟, 而模式則是對解決方案的更高層次描述。同一模式在兩個不同程式中的實作代碼可能會不一樣。
演算法比較像是食譜: 提供達成目標的明確步驟。而模式更像是藍圖: 你可以看到最終的結果和模式的功能, 但需要自己確定實現步驟。
誰發明了設計模式?這是一個很好的問題, 但也有點不太準確。設計模式並不是晦澀的、 複雜的概念——事實恰恰相反。模式是物件導向設計中常見問題的典型解決方案。同樣的解決方案在各種項目中都得到了反覆使用, 所以最終有人給它們起了名字, 並對其進行了詳細描述。這基本上就是模式被發現的歷程了。
模式的概念是由克里斯多福·亞歷山大在其著作 《建築模式語言》 中首次提出的。本書介紹了城市設計的 “語言”, 而這類 “語言” 的基本單元就是模式。模式中可能會包含對窗戶應該在多高、 一座建築物應該有多少層以及一片街區應該有多大面積的植被等資訊的描述。
埃里希·伽瑪、 約翰·弗利賽德斯、 拉爾夫·約翰遜和理查德·赫爾姆這四位作者接受了模式的概念。 1994 年, 他們出版了 《設計模式: 可重複使用物件導向軟體的基礎》 一書, 將設計模式的概念應用到程式開發領域。該書提供了 23 個模式來解決物件導向程式設計中的各種問題, 很快便成為了暢銷書。由於書名太長, 人們將其簡稱為 “四人組 (Gang of Four, GoF) 的書”, 並且很快進一步簡化為 “GoF 的書”。
此後, 人們又發現了數十種物件導向的模式。 「模式方法」 開始在其他程式開發領域中流行。如今, 在物件導向設計領域之外, 人們也提出了許多其他的模式。
不同設計模式的複雜程度、 細節層次以及在整個系統中的應用範圍等方面各不相同。我喜歡將其類比於道路的建造: 如果你希望讓十字路口更加安全, 那麼可以安裝一些交通信號燈, 或者建造包含行人地下通道在內的多層互通式立交橋。
最基礎的、 底層的模式通常被稱為慣用技巧。這類模式一般只能在一種程式語言中使用。
最通用的、 高層的模式是架構模式。開發者可以在任何程式語言中使用這類模式。與其他模式不同, 它們可用於整個應用程式的架構設計。
此外, 所有模式可以根據其意圖或目的來分類。本書涵蓋了三種主要的模式類別:
建立型模式提供建立物件的機制, 增加已有程式碼的彈性和可重複使用性。
結構型模式介紹如何將物件和類別組裝成較大的結構, 並同時保持結構的靈活和高效。
行為模式負責物件間的高效率溝通與職責委派。
透過下圖,大致羅列出如下:
上面分享了一些關於設計模式的基礎知識。我們也對設計模式的發展史、分類等有了一定的了解,接著就是透過程式碼實踐了。在學習設計模式時,大家會常常遇到一個問題。
同一種設計模式在A程式語言中能夠實現,但是在B程式語言中就不知道如何實現。
初學者,由於看的書籍或文章所使用的程式語言與自己目前掌握的程式語言不符,導致增加了學習難度。
對於上面的這些問題,在該網站中,統統都幫你一一解決了。網站中有這不同的程式語言範例程式碼,滿足了絕大部分的學習者。
在範例程式碼中,不僅介紹了設計模式的定義,還有邏輯圖,UML圖,實際程式碼,實用環境。同時最大的亮點是透過真實的生活環境案例,來歸納設計模式,這樣幫助理解設計模式。下圖就是設計模式範例程式碼的大致學習想法:
上面大致上羅列了一些設計模式的一些基礎知識,還有網站設計模式學習的方式與方法。網站的特定網址是:refactoringguru.cn/design-patterns
推薦:《PHP影片教學》
以上是分享PHP設計模式學習總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!