PHP面向物件之設計模式
在面試的時候經常被問到設計模式,那設計模式到底是什麼東東呢?
其實我們在開發工作中經常遇到設計模式,只是我們並不知道我們這個類,方法是一種設計模式。
下面就介紹幾種常用的設計模式,下次再開發的時候,當遇到此類的情況就能知道到底是哪一種設計模式。
1.單例模式:instance,多型的體現。
單例模式顧名思義,就是隻有一個例項。作為物件的建立模式, 單例模式確保某一個類只有一個例項,而且自行例項化並向整個系統提供這個例項。
案例:
1. php的應用主要在於資料庫應用, 一個應用中會存在大量的資料庫操作, 在使用面向物件的方式開發時, 如果使用單例模式, 則可以避免大量的new 操作消耗的資源,還可以減少資料庫連線這樣就不容易出現 too many connections情況。
2.如果系統中需要有一個類來全域性控制某些配置資訊, 那麼使用單例模式可以很方便的實現.
2. 簡單工廠模式
工廠模式是我們最常用的例項化物件模式,是用工廠方法代替new操作的一種模式。
就是用工廠類的方法去例項化其他類。
如:定製工廠
1.定義一個介面,裡面包含交工工具的製造方法(啟動 執行 停止)
2.分別寫製造飛機,汽車的工廠類去繼承實現這個介面
3.觀察者模式
觀察者模式屬於行為模式,是定義物件間的一種一對多的依賴關係,以便當一個物件的狀態發生改變時,所有依 賴於它的物件都得到通知並自動重新整理。
它完美的將觀察者物件和被觀察者物件分離。
4. 註冊模式
註冊模式,解決全域性共享和交換物件。已經建立好的物件,掛在到某個全域性可以使用的陣列上,在需要使用的時候,直接從該陣列上獲取即可。
將物件註冊到全域性的樹上。任何地方直接去訪問。
5.介面卡模式
將各種截然不同的函式介面封裝成統一的API。
PHP中的資料庫操作有MySQL,MySQLi,PDO三種,可以用介面卡模式統一成一致,使不同的資料庫操作,統一成一樣的API。
介面:
Mysql 操作類:
PDO 操作類:
當然,設計模式有很多的種類,上面幾種設計模式是常用的。
我們需要在開發的過程中,多多留意它們。