parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

фабрика объектов 2

KLeN 01.10.2007 18:47

Можно сделать так: http://www.parser.ru/forum/?id=20720
минус нужно заранее вписать имена классов

а можно сделать так:
# где нибудь в корневом auto.p
@auto
...
$hClassFactory[^hash::create[]]
в каждом классе участвующем в этом цирке
@CLASS
testFactory

@auto[]
$MAIN:hClassFactory.testFactory[$self.CLASS]

@factoryCreate[h][result]
$result[^testFactory::new[$h]]

# дальше конструктор и все прочие прелести
@new[h]
...
@imMegaMethod[]
Go!
где-то
# откуда то пришло имя класса
$sImClassName[testFactory]
# и.. магия
$oImClass[^MAIN:hClassFactory.$sImClassName.factoryCreate[$hParams]]
^oImClass.imMegaMethod[]
если следовать соглашению Имя класса = Имя файла (Имя класса + .p)
то + используем ^use[${sImClassName}.p]