Delphi - Créer une classe à partir d'une chaîne

J'ai reçu un code comme ceci

name := 'Foo';
If name = 'Foo' then
  result := TFoo.Create
else if name = 'Bar' then 
  result := TBar.Create
else if name = 'FooFoo' then
  result := TFooFoo.Create;

Est-il un moyen juste pour faire

result := $name.create

ou un moyen de créer de la classe en fonction de la valeur d'une variable?

Toutes les classes étendues de la même classe de base.

source d'informationauteur Wizzard