Denis Koroskin Wrote: > On Thu, 19 Mar 2009 22:58:02 +0300, Simen Kjaeraas <[email protected]> > wrote: > > > On Thu, 19 Mar 2009 18:06:37 +0100, KeepYourMind > > <[email protected]> wrote: > > > >> Sean Kelly Wrote: > >> > >>> KeepYourMind wrote: > >>> > > >>> > What i need to do for pizza.doSomeA() begin work? > >>> > >>> cast pizza to CoolPizza. > >> > >> Problem is i dont know what class returned. "char[] name" is dynamic > >> and getting from command-line arguments. > > > > Then you need some test to see if it really is a CoolPizza. > > > > void main( string[] args ) { > > auto pizza = PizzaFactory.factory( args[1] ); > > pizza.doSome( ); > > if ( args[1] == "CoolPizza" ) { > > ( cast( CoolPizza ) pizza ).doSomeA( ); > > } > > } > > Not like that. Here is a better way: > > auto pizza = PizzaFactory.factory( name ); > pizza.doSome(); > if (auto cool = cast(CoolPizza)pizza) { > cool.doSomeA(); > } >
Got it. If use one from this ways i'm not need factory, only switch. Bad. :-(
