PHP 設計模式之二 工廠模式

2021-09-16 12:44:54 字數 978 閱讀 3292

工廠模式的使用頻率比較高。它的定義為:定義乙個類,該類主要負責系統的去例項化一些其它的類。通俗點說就是,你告訴我你需要哪個類的例項即可,其它的你不用管,我幫你去例項化,你只管用即可。

工廠物件可能會動態地建立產品物件的類,或者從物件池中返回乙個物件,或者對所建立的物件進行複雜的配置,或者應用其他的操作。從定義上看,單例模式也是一種工廠模式的實現,因為它為你例項化了乙個特定的物件供系統使用。

資料庫驅動:各個 web 框架的資料庫驅動邏輯,其中就有工廠模式的影子。大多數的框架會支援多種資料庫如 oracle / mysql / sql server 等,此時在配置項裡,只需提供一下約定好的資料庫平台的字串名稱即可,無需自己例項化資料庫驅動。 web 框架收到要例項化的資料庫名稱後,呼叫工廠模式方法,例項化相應的資料庫驅動後,供後續**使用。

連線郵件伺服器的類:可以連線郵件伺服器的方法有 pop3,imap,http ,此時可以寫乙個工廠類負責例項化這幾種連線方法,如果某一天對方增加了 webserives 連線方法,那麼直接在工廠類裡做相應的修改即可。

class connectionfactory

else

}}connectionfactory::getconnection("mysql");

connectionfactory::getconnection("oracle");

如果有了新的資料庫驅動類,只需要在 drivers 下加入相應的驅動檔案即可,當然要符合相應驅動規則。

乙個呼叫者想建立乙個物件,只要知道其名稱就可以了。封裝了例項化過程,使用者不在需要關心過多的例項化過程,只需要提供約定好的例項化標識即可。

擴充套件性高,如果想增加乙個「產品」,只要擴充套件乙個工廠類或者是修改工廠的生產過程即可。 3. 遮蔽產品的具體實現,呼叫者只關心產品的介面,產品類不論如何變化都不再影響其實例化過程。

每次增加乙個產品時,都需要增加或者修改乙個具體類和物件實現工廠,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。

java設計模式之二工廠模式

工廠模式主要用一下幾種形態 1 簡單工廠 factory 2 工廠方法 factory method 3 抽象工廠 abstract factory 又叫靜態工廠,是工廠模式三中狀態中結構最為簡單的。主要有乙個靜態方法,用來接受引數,並根據引數來決定返回實現同一介面的不同類的例項。我們來看乙個具體的...

設計模式之二 簡單工廠模式

前言 簡單工廠模式根據提供的資料或者引數返回幾個可能的類中的乙個例項,說通俗點有點像物件導向程式設計中的多型性,乙個基類,有多個派生類,在另外的呼叫程式中,根據引數來決定返回這個基類的哪個具體的派生類,返回值為基類型別,因為基類的引用可以指向派生類物件,而且這些所有的派生類都包含有基類的函式,也就是...

php設計模式 二 工廠模式

inte ce db 面向介面,只需要知道介面的呼叫,不需要知道介面具體的實現 在php裡面就有好幾種方法,mysql擴充套件,mysqli擴充套件,pdo擴充套件。我就是想要乙個物件用來以後的操作,具體要哪個,視情況而定嘍。既然你們都是連線資料庫的操作,你們就應該擁有相同的功能,建立連線,查詢,斷...