2010-04-27 63 views
1

的Magento是一個新望(近5年)基於PHP的電子商務系統的架構是類似於Java Spring框架(或所以我一直在說)Magento類覆蓋設計模式的正式名稱?

一個框架的特點是某些類不直接實例化。而不是像做

$model = new Mage_Foo_Model_Name(); 

你傳遞一個全局應用程序對象

$model = Mage::getModel('foo/name'); 

上的標識爲一個靜態方法,這會將該類實例爲您服務。

getModel通過此方法獲得的一個勝利是爲全局配置系統檢查foo/name標識符,並實例化它在配置系統中找到的類名稱。這使您可以通過單個配置更改來更改Model系統的行爲。

是否有正式的四人幫或其他名稱描述此係統/設計模式?實例本身看起來像一個典型的Factory模式,但我特別感興趣的是整個「通過配置覆蓋系統中的類」方面。是否有一個涵蓋此的名稱/概念,還是包含在工廠的世界觀中?

回答

4

這看起來像工廠設計模式。


報價爲Factory method pattern(重點煤礦)的維基百科條目

它與創建 對象(產品)的問題比不指定 確切類對象的,這將是創建了 。
工廠方法設計 圖案處理此問題,通過 限定用於 一個單獨的方法創建的對象,子類則 可以重寫指定產品的 派生類型,這將是 創建。

和:

外的設計模式的範圍, 術語工廠方法也可以指 的工廠,其主要目的 是對象創建的方法。


一對夫婦的其他相關鏈接:

+0

是的,類的實例化看起來像一個工廠,但我更感興趣的是「允許人們通過。配置覆蓋事物」方面。更新問題以更好地反映我的想法。 – 2010-04-27 18:51:25

1

聽起來好像一個service locator

此模式使用稱爲「服務定位器」的中央註冊表,該服務器定位器根據請求返回執行特定任務所需的信息。