工廠應該負責查找模型並創建它們嗎?在PHP和Laravel中使用工廠模式
例如:
如果我有一個產品模型,應當在其工廠是否有方法,如:
$product = $productFactory->findByID(32);
$product = $productFactory->all();
$product = $productFactory->findByName($productName);
$product = $productFactory->create($data);
工廠應該負責查找模型並創建它們嗎?在PHP和Laravel中使用工廠模式
例如:
如果我有一個產品模型,應當在其工廠是否有方法,如:
$product = $productFactory->findByID(32);
$product = $productFactory->all();
$product = $productFactory->findByName($productName);
$product = $productFactory->create($data);
嗯,其實Factory Pattern
是使用工廠方法來處理該問題的creational pattern
即使沒有指定staic類也會創建對象,這意味着它會在run-time
處動態創建對象。該模式用於處理客戶機類的對象創建機制,以便使用基於運行時構建的動態類。此模式使用工廠方法(抽象),並且此方法根據使用構建對象的客戶端類的請求使用其他類/對象構建對象。好吧,無論如何,這是一件很寬泛的事情。
而不是思考設計模式,例如你應該遵循哪種模式,試着找出你的類的用例並相應地使用它們。很可能你的意思是Model
作爲擴展Eloquent
ORM的類,在這種情況下,如果擴展Eloquent ORM
,則模型類已經具有這些方法,因此不需要在類中創建這些方法,而是將業務邏輯和數據庫層分開使用普通的類,你可以使用這些類作爲依賴從數據庫圖層類中調用方法。可能這聽起來很混亂。
這取決於你如何組織你的目錄結構,但只考慮SoC,這足以得到一個乾淨的應用程序架構模式的想法。不要以爲設計模式太深,而應該考慮一個乾淨的應用程序模型,就是這樣。大概this article may help you一點點(特別使用Laravel
和Repository Pattern
討論)。
對於Factory Pattern
,你可以檢查this簡單但有幫助的文章。