目錄
文章歸納
首頁 後端開發 php教程 分享PHP設計模式學習總結

分享PHP設計模式學習總結

Jun 03, 2021 pm 03:48 PM
php 設計模式

本篇文章帶大家介紹分享PHP設計模式學習摘要。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

專注於PHP、MySQL、Linux與前端開發,有興趣的感謝點個關注喲! ! !文章整理在GitHub,主要包含的技術有PHP、Redis、MySQL、JavaScript、HTML&CSS、Linux、Java、Golang、Linux和工具資源等相關理論知識、面試題和實戰內容。

文章歸納

本文將分享給你一個超實用的設計模式學習網站。在學習設計模式之前,首先我們需要知道為什麼要學習設計模式?如何有正確的、高效率的學習設計模式?下圖羅列出個人在學習設計模式過程中的一個大致學習想法:
分享PHP設計模式學習總結

#什麼是設計模式

設計模式是軟體設計中常見問題的典型解決方案。它們就像是能根據需求進行調整的預製藍圖, 可用來解決程式碼中反覆出現的設計問題。

設計模式與方法或函式庫的使用方式不同, 你很難直接在自己的程式中套用某個設計模式。模式並不是一段特定的程式碼, 而是解決特定問題的一般性概念。你可以根據模式來實現符合自己程式實際所需的解決方案。

人們常常會混淆模式和演算法, 因為兩者在概念上都是已知特定問題的典型解決方案。但演算法總是明確定義達成特定目標所需的一系列步驟, 而模式則是對解決方案的更高層次描述。同一模式在兩個不同程式中的實作代碼可能會不一樣。

演算法比較像是食譜: 提供達成目標的明確步驟。而模式更像是藍圖: 你可以看到最終的結果和模式的功能, 但需要自己確定實現步驟。

設計模式發展歷史

誰發明了設計模式?這是一個很好的問題, 但也有點不太準確。設計模式並不是晦澀的、 複雜的概念——事實恰恰相反。模式是物件導向設計中常見問題的典型解決方案。同樣的解決方案在各種項目中都得到了反覆使用, 所以最終有人給它們起了名字, 並對其進行了詳細描述。這基本上就是模式被發現的歷程了。

模式的概念是由克里斯多福·亞歷山大在其著作 《建築模式語言》 中首次提出的。本書介紹了城市設計的 “語言”, 而這類 “語言” 的基本單元就是模式。模式中可能會包含對窗戶應該在多高、 一座建築物應該有多少層以及一片街區應該有多大面積的植被等資訊的描述。

埃里希·伽瑪、 約翰·弗利賽德斯、 拉爾夫·約翰遜和理查德·赫爾姆這四位作者接受了模式的概念。 1994 年, 他們出版了 《設計模式: ​​可重複使用物件導向軟體的基礎》 一書, 將設計模式的概念應用到程式開發領域。該書提供了 23 個模式來解決物件導向程式設計中的各種問題, 很快便成為了暢銷書。由於書名太長, 人們將其簡稱為 “四人組 (Gang of Four, GoF) 的書”, 並且很快進一步簡化為 “GoF 的書”。

此後, 人們又發現了數十種物件導向的模式。 「模式方法」 開始在其他程式開發領域中流行。如今, 在物件導向設計領域之外, 人們也提出了許多其他的模式。

設計模式分類

不同設計模式的複雜程度、 細節層次以及在整個系統中的應用範圍等方面各不相同。我喜歡將其類比於道路的建造: 如果你希望讓十字路口更加安全, 那麼可以安裝一些交通信號燈, 或者建造包含行人地下通道在內的多層互通式立交橋。

最基礎的、 底層的模式通常被稱為慣用技巧。這類模式一般只能在一種程式語言中使用。

最通用的、 高層的模式是架構模式。開發者可以在任何程式語言中使用這類模式。與其他模式不同, 它們可用於整個應用程式的架構設計。

此外, 所有模式可以根據其意圖或目的來分類。本書涵蓋了三種主要的模式類別:

  1. 建立型模式提供建立物件的機制, 增加已有程式碼的彈性和可重複使用性。

  2. 結構型模式介紹如何將物件和類別組裝成較大的結構, 並同時保持結構的靈活和高效。

  3. 行為模式負責物件間的高效率溝通與職責委派。

透過下圖,大致羅列出如下:
分享PHP設計模式學習總結

模式實踐

上面分享了一些關於設計模式的基礎知識。我們也對設計模式的發展史、分類等有了一定的了解,接著就是透過程式碼實踐了。在學習設計模式時,大家會常常遇到一個問題。

  1. 同一種設計模式在A程式語言中能夠實現,但是在B程式語言中就不知道如何實現。

  2. 初學者,由於看的書籍或文章所使用的程式語言與自己目前掌握的程式語言不符,導致增加了學習難度。

對於上面的這些問題,在該網站中,統統都幫你一一解決了。網站中有這不同的程式語言範例程式碼,滿足了絕大部分的學習者。

學習方法

在範例程式碼中,不僅介紹了設計模式的定義,還有邏輯圖,UML圖,實際程式碼,實用環境。同時最大的亮點是透過真實的生活環境案例,來歸納設計模式,這樣幫助理解設計模式。下圖就是設計模式範例程式碼的大致學習想法:
分享PHP設計模式學習總結

網站位址

上面大致上羅列了一些設計模式的一些基礎知識,還有網站設計模式學習的方式與方法。網站的特定網址是:refactoringguru.cn/design-patterns

推薦:《PHP影片教學》   

以上是分享PHP設計模式學習總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles