Örgün Magentoâ € ™ s Sınıf kılma Design Pattern adı?

2 Cevap java

Magento Java Spring framework benzer (ya da ben öyle duydum) var bir mimari ile bir yenice (son 5 yıl) PHP tabanlı E-ticaret sistemi

Çerçeve özelliklerinden biri belli sınıfları doğrudan başlatılamaz verilmemektedir. Gibi bir şey yapmak yerine,

$model = new Mage_Foo_Model_Name();

Eğer küresel bir uygulama nesnesi üzerinde bir statik yönteme bir tanımlayıcı geçmek

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

ve bu sizin için sınıfını başlatır.

Bu yaklaşım ile kazanır biri getModel foo / adı tanımlayıcı için küresel bir yapılandırma sistemi denetler ve yapılandırma sistemi içinde bulur sınıf adını başlatır olduğunu. Bu, tek bir yapılandırma değişikliği ile geniş bir model sistemin davranışını değiştirmek için olanak sağlar.

Bu sistem / tasarım deseni açıklar, aksi takdirde resmi, Gang of Four ya, adı var mı? Örnekleme kendisi klasik Fabrika desen gibi görünüyor, ama ben bütün "yapılandırması üzerinden sisteminde bir sınıf geçersiz" yönüyle özellikle ilgileniyorum. Bu kapsayan bir isim / kavram var mı, ya da bir Fabrikası'nın dünya görüşünün içinde yer alır?

2 Cevap

Bu Factory tasarım deseni gibi görünüyor.


Quoting the wikipedia entry for Factory method pattern (emphasis mine) :

it deals with the problem of creating objects (products) without specifying the exact class of object that will be created.
The factory method design pattern handles this problem by defining a separate method for creating the objects, which subclasses can then override to specify the derived type of product that will be created.

Ve:

Outside the scope of design patterns, the term factory method can also refer to a method of a factory whose main purpose is creation of objects.


A couple of other interesting links :

Bir service locator gibi geliyor bana.

Bu desen istek üzerine belirli bir görevi gerçekleştirmek için gerekli bilgi verir "hizmet konumlandırıcıya" olarak bilinen merkezi bir kayıt kullanır.