PHP工廠模式介紹

2021-10-17 14:27:06 字數 3287 閱讀 3883

工廠模式就是一種類,具有為您建立物件的某些方法,這樣就可以使用工廠類建立物件,而不直接使用new。這樣如果想更改建立的物件型別,只需更改該工廠即可。

概念:是用工廠方法代替new操作的一種模式。只需呼叫工廠裡的方法得到例項,大大解耦**,如果後期修改類功能或者類名,只需修改工廠方法就可以,不需要涉及到業務**。

使用場景:對上層的使用者隔離物件建立的過程;或者是物件建立的過程複雜,使用者不容易掌握;或者是物件建立要滿足某種條件,這些條件是業務的需求也好,是系統約束也好,沒有必要讓上層使用者掌握,增加別人開發的難度。

把物件的建立和使用的過程分開,比如:classa呼叫classb,那麼classa只呼叫classb的方法,至於例項化classb則在工廠內實現。這樣既減少了**的重複使用,也方便對classb的後期維護。如果classb例項化過程很複雜,使用簡單工廠模式就會發現外部無需關注複雜的例項化,只管呼叫classb的方法即可,減少錯誤。

主要用於限制類的公用方法

}抽象工廠模式=工廠方法模式+簡單工廠模式

}靜態方法主要用於構建相同型別的物件

}

// 靜態工廠模式例項

class factory elseif(2 == $id)elseif(3 == $id)else

}}inte***ce fetchname

class a implements fetchname

}class b implements fetchname

}class c implements fetchname

}class d implements fetchname

}$obj = factory::fac(6); // 呼叫工廠類中的方法

if($obj instanceof fetchname)

$p = factory::fac(3);

echo $p->getname(); // ccccc

補充:mvc裡的dbclass來說明,外部呼叫的時候只需選擇自己所需的表名,該工廠會去呼叫真實資料庫處理方法,然後返回你想要的結果。

class dbfactoryelse

}}trycatch (\exception $e)

介紹php設計模式中的工廠模式

問題 你如何能輕鬆方便地建立這麼 複雜 n程式設計客棧bsp 的物件即操作中不需要貼上複製呢?解決方法 建立乙個工廠 乙個函式或乙個類方法 來製造新的物件。為了理解工廠的用處,試想以下的不同之處 複製 如下 connection new mysqlconnection user,password,d...

工廠模式介紹

工廠模式 實現了建立者和呼叫者的分離。詳細分類 a.簡單工廠模式 用來生生同一等級的結構中的任意產品 對於新增的產品,需要修改已有的 b.工廠方法模式 用來生產同一等級中的固定的產品 支援增加任意產品 c.抽象工廠模式 用來生產不同的產品族的全部產品。對於新增產品,無能為力,支援增加產品族 抽象工廠...

工廠模式介紹

通過工廠類,來建立物件,不再直接去建立物件使用 解耦 開發中你會實在地體會到解耦是件多麼重要的事,越複雜越tt 注 什麼是耦合性?public class actionservletcontroller 如果要修改物件userserviceimpl,那還要去actionservletcontroll...