# Class Factory pattern help

**URL:** <https://forum.kirupa.com/t/class-factory-pattern-help/260234>\
**Category:** flash\
**Created:** [May 13, 2008, 6:03pm UTC](https://forum.kirupa.com/t/class-factory-pattern-help/260234 "2008-05-13T18:03:25Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![optimusvlad](https://avatars.discourse-cdn.com/v4/letter/o/5f9b8f/32.png) [@optimusvlad](https://forum.kirupa.com/u/optimusvlad)\
**Post date:** [May 13, 2008, 6:03pm UTC](https://forum.kirupa.com/t/class-factory-pattern-help/260234/1 "2008-05-13T18:03:25Z")

</div>

I’m back to actionscript after many years in hiatus.

I want to create a loader class that I can use to load class dynamically at runtime. Basically, a factory pattern class.

It will work something like this:

```php

package
{
  import runtime_loader;
  import app_controller;
  import my_error;
  public class foo
  {
     var _controller:app_controller;
     public function foo(controller_name:String)
     {
          _controller = runtime_loader(controller_name);
          if (!_controller)
          {
             throw my_error('fool!')
           }
      }
    }
  }

```

My current runtime\_loader class basically has a switch that decides the class to return. I would like to make it as clean as possible. Currently, it looks something like:

```php

switch(name)
{
  case 'foobar':
    return new foobar;
  case 'bezfoo':
    return new bezfoo;
  default:
    return null;
}

```

It would be sweet if I could do something along the lines of:

```php

try
{
  return new $name;
}
catch (invalid_class)
{
 ...
}

```

Is there any way to include all the classes that fall under a top level package, even the one in sub packages?  
like: import.\*\* ; // I know this is invalid  
Any help with creating a factory class would be sweet.

---

<div class="post-metadata">

**Author:** ![Felixz](https://avatars.discourse-cdn.com/v4/letter/f/ecb155/32.png) [@Felixz](https://forum.kirupa.com/u/Felixz)\
**Post date:** [May 13, 2008, 7:18pm UTC](https://forum.kirupa.com/t/class-factory-pattern-help/260234/2 "2008-05-13T19:18:49Z")

</div>

```auto
try {
	var clas:Class=getDefinitionByName(someString);
	var instance=new clas();
} catch (error:Error) {
	trace("Class doesn't exist")
}

```

---

<div class="post-metadata">

**Author:** ![optimusvlad](https://avatars.discourse-cdn.com/v4/letter/o/5f9b8f/32.png) [@optimusvlad](https://forum.kirupa.com/u/optimusvlad)\
**Post date:** [May 13, 2008, 10:08pm UTC](https://forum.kirupa.com/t/class-factory-pattern-help/260234/3 "2008-05-13T22:08:15Z")

</div>

Thanks
