Factory

Basic component factory that creates components using registered types and factory functions.

Implements: IFactory

Description

The Factory class allows you to create components using registered types and factory functions.

Instance methods

canCreate

Checks if this factory is able to create component by a given locator.

This method searches for all registered components and returns a locator for the component it is able to create that matches the given locator. If the factory is not able to create the requested component is returns null.

public canCreate(locator: any): any

  • locator: any - a locator to identify component to be created.
  • returns: any - a locator for a component that the factory is able to create.

create

Creates a component identified by given a locator.

public create(locator: any): any

  • locator: any - a locator to identify component to be created.
  • returns: any - the created component.

register

Registers a component using a factory method.

public register(locator: any, factory: any)

  • locator: any - a locator to identify component to be created.
  • factory: any - a factory function that receives a locator and returns a created component.

registerAsType

Registers a component using its type (a constructor function).

public registerAsType(locator: any, type: any)

  • locator: any - a locator to identify component to be created.
  • type: any - a component type.

Examples

let factory = new Factory();
   
factory.registerAsType(
    new Descriptor("mygroup", "mycomponent1", "default", "*", "1.0"),
    MyComponent1
);
factory.register(
    new Descriptor("mygroup", "mycomponent2", "default", "*", "1.0"),
    (locator) => {
        return new MyComponent2();
    }
);
    
factory.create(new Descriptor("mygroup", "mycomponent1", "default", "name1", "1.0"))
factory.create(new Descriptor("mygroup", "mycomponent2", "default", "name2", "1.0"))

See also