本文目錄一覽:
什麼是PHP中的工廠設計模式
工廠模式分為三種:簡單工廠、工廠方法、抽象工廠 ,三種工廠的區別是,抽象工廠由多條產品線,而工廠方法只有一條產品線,是抽象工廠的簡化。而工廠方法和簡單工廠相對,大家初看起來好像工廠方法增加了許多代碼但是實現的功能和簡單工廠一樣。但本質是,簡單工廠並未嚴格遵循設計模式的開閉原則,當需要增加新產品時也需要修改工廠代碼。但是工廠方法則嚴格遵守開閉原則,模式只負責抽象工廠接口,具體工廠交給客戶去擴展。在分工時,核心工程師負責抽象工廠和抽象產品的定義,業務工程師負責具體工廠和具體產品的實現。只要抽象層設計的好,框架就是非常穩定的。
php中常見的幾種設計模式
狀態state模式是GOF23種模式中的一種,和命令模式一樣,也是一種行為模式。狀態模式和命令模式相當像,一樣是「接口—實現類」這種模式的應用,是面向接口編程原則的體現。
狀態模式屬於對象創建型模式,其意圖是允許一個對象在其內部狀態改變時改變它的行為,對象看起來似乎修改了他的類。比較常見的例子是在一個表示網絡連接的類TCPConnection,一個TCPConnection對象的狀態處於若干不同的狀態之一:連接已經建立(Established),正在監聽,連接已經關閉(closed)。當一個TCPConnection對象收到其他對象的請求時,他根據自身的狀態作出不同的反應。
php常用的MVC原理以及設計模式?
設計模式不僅代表着更快開發健壯軟件的有用方法,而且還提供了以友好的術語封裝大型理念的方法。例如,您可以說您正在編寫一個提供鬆散耦合的消息傳遞系統,也可以說你正在編寫名稱為 觀察者 的模式。
用較小的示例展示模式的價值是非常困難的。這往往有些大材小用的意味,因為模式實際上是在大型代碼庫中發揮作用的。本文不展示大型應用程序,所以您需要思索的是在您自己的大型應用程序中應用示例原理的方法 —— 而不是本文演示的代碼本身。這不是說您不應該在小應用程序中使用模式。很多良好的應用程序都以小應用程序為起點,逐漸發展到大型應用程序,所以沒有理由不以此類紮實的編碼實踐為基礎。
深入了解php框架mvc設計模式的原理
現在的PHP框架太多了,如yii codeigniterlaravel thinkphp 一看文檔就一大堆英文資料,學也學不過來,可是上班時候公司要求你會這個,有的要求你會那個,看書上的理論又假大空,不知道在說什麼東西,看實際的例子代碼又太複雜龐大,所以今天就做一個簡單的小例子主要來給中級階段的php同學了解MVC的共同原理,了解這些原理自己也可以設計一個mvc 框架
先創建一個主流框架的目錄,包含控制器,數據模型,視圖顯示,3個文件夾,和一個入口文件
現在來設計一個路由地址,控制器名a=方法名param=參數名;然後寫在入口文件里的獲取路由的代碼,如下圖所示,這樣寫就能獲取不同的控制器名字和不同的方法,由入口文件獲取這些控制器和方法名,參數後就傳入指定的控制器方法名中
現在寫控制器的類和方法,便於接受入口文件傳入的值,控制器的作用就是協調調用數據處理和顯示樣式
現在來寫好數據處理類,數據處理主要是依靠mysql等和視圖顯示類,視圖主要就是把內容顯示出來,一般由smarty代替,數據處理文件名model.php,視圖顯示index.php
現在輸入控制器名a=方法名param=參數名 看他們都顯示出來了,一個簡單的框架就完成了,大家有機會自行擴展吧!
那麼控制器和視圖,數據的關係是什麼呢?一般具體中是從入口文件得到用戶輸入的控制器和方法名,參數,再傳給用戶指定的控制器,再由控制器(a)把參數傳給數據處理(m),m處理後返回給a,a 將得到的內容傳給視圖顯示(v),v再把他顯示出來。這只是一個簡單的MVC設計模式而已,大家可以在這上面設計出比較複雜的MVC模式
PHP設計模式有哪些
1.工廠模式
工廠模式是一種類,它具有為您創建對象的某些方法。您可以使用工廠類創建對象,而不直接使用 new。這樣,如果您想要更改所創建的對象類型,只需更改該工廠即可。使用該工廠的所有代碼會自動更改。
2.單元素模式
某些應用程序資源是獨佔的,因為有且只有一個此類型的資源。例如,通過數據庫句柄到數據庫的連接是獨佔的。您希望在應用程序中共享數據庫句柄,因為在保持連接打開或關閉時,它是一種開銷,在獲取單個頁面的過程中更是如此。
3.觀察者模式
觀察者模式為您提供了避免組件之間緊密耦合的另一種方法。該模式非常簡單:一個對象通過添加一個方法(該方法允許另一個對象,即觀察者 註冊自己)使本身變得可觀察。當可觀察的對象更改時,它會將消息發送到已註冊的觀察者。這些觀察者使用該信息執行的操作與可觀察的對象無關。結果是對象可 以相互對話,而不必了解原因。
4.命令鏈模式
命令鏈 模式以鬆散耦合主題為基礎,發送消息、命令和請求,或通過一組處理程序發送任意內容。每個處理程序都會自行判斷自己能否處理請求。如果可以,該請求被處理,進程停止。您可以為系統添加或移除處理程序,而不影響其他處理程序。
5.策略模式
我們講述的最後一個設計模式是策略 模式。在此模式中,算法是從複雜類提取的,因而可以方便地替換。例如,如果要更改搜索引擎中排列頁的方法,則策略模式是一個不錯的選擇。思考一下搜索引擎 的幾個部分 —— 一部分遍歷頁面,一部分對每頁排列,另一部分基於排列的結果排序。在複雜的示例中,這些部分都在同一個類中。通過使用策略模式,您可將排列部分放入另一個 類中,以便更改頁排列的方式,而不影響搜索引擎的其餘代碼。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/310067.html