Java Magento的正式名称’;s类覆盖设计模式?

Java Magento的正式名称’;s类覆盖设计模式?,java,php,oop,spring,magento,Java,Php,Oop,Spring,Magento,Magento是一个新的(过去5年)基于PHP的电子商务系统,其体系结构类似于JavaSpring框架(至少我听说过) 该框架的一个特点是某些类不是直接实例化的。而不是像这样做 $model = new Mage_Foo_Model_Name(); 将标识符传递给全局应用程序对象上的静态方法 $model = Mage::getModel('foo/name'); 这将为您实例化这个类 这种方法的成功之处之一是getModel检查全局配置系统中的foo/name标识符,并实例化它在配置系统中

Magento是一个新的(过去5年)基于PHP的电子商务系统,其体系结构类似于JavaSpring框架(至少我听说过)

该框架的一个特点是某些类不是直接实例化的。而不是像这样做

$model = new Mage_Foo_Model_Name();
将标识符传递给全局应用程序对象上的静态方法

$model = Mage::getModel('foo/name');
这将为您实例化这个类

这种方法的成功之处之一是getModel检查全局配置系统中的foo/name标识符,并实例化它在配置系统中找到的类名。这允许您通过单个配置更改来更改模型系统范围的行为


是否有一个正式的四人组或其他名称来描述这个系统/设计模式?实例化本身看起来像一个经典的工厂模式,但我对整个“通过配置重写系统中的类”方面特别感兴趣。是否有一个名称/概念涵盖了这一点,或者它包含在工厂的世界观中?

这看起来像工厂的设计模式


引用维基百科条目(强调我的):

它处理创建的问题 未指定的对象(产品) 将显示的对象的确切类别 创造<工厂法设计 模式通过 定义一个单独的 创建对象,哪些子类 然后可以重写以指定 将被删除的产品的派生类型 创造

以及:

在设计模式的范围之外, 术语工厂法也可以指 一个工厂的方法 目的是创建对象


其他几个有趣的链接:


这看起来像工厂的设计模式


引用维基百科条目(强调我的):

它处理创建的问题 未指定的对象(产品) 将显示的对象的确切类别 创造<工厂法设计 模式通过 定义一个单独的 创建对象,哪些子类 然后可以重写以指定 将被删除的产品的派生类型 创造

以及:

在设计模式的范围之外, 术语工厂法也可以指 一个工厂的方法 目的是创建对象


其他几个有趣的链接:

听起来像是一场灾难

此模式使用一个称为“服务定位器”的中央注册表,该注册表根据请求返回执行特定任务所需的信息

对我来说,这听起来像是一场灾难

此模式使用一个称为“服务定位器”的中央注册表,该注册表根据请求返回执行特定任务所需的信息


是的,类的实例化看起来像一个工厂,但我更感兴趣的是它的“允许人们通过.configuration重写东西”方面。问题更新了,以更好地反映我的想法。是的,类的实例化看起来像一个工厂,但我更感兴趣的是它的“允许人们通过.configuration重写东西”方面。这个问题更新了,以更好地反映我的想法。