Source: sources/cores/TInstancingFactory.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { TAbstractFactory } from './TAbstractFactory'

/**
 * @class
 * @classdesc The TInstancingFactory is a kind a factory that performe instanciation based on registred constructor.
 * @extends TAbstractFactory
 *
 * @author [Tristan Valcke]{@link https://github.com/Itee}
 * @license [BSD-3-Clause]{@link https://opensource.org/licenses/BSD-3-Clause}
 */
class TInstancingFactory extends TAbstractFactory {

    /**
     * The ctor description
     * @param parameters
     */
    constructor ( parameters = {} ) {

        const _parameters = { ...{}, ...parameters }

        super( _parameters )

    }

    /**
     *
     * @param key
     * @param parameters
     * @returns {*}
     */
    create ( key, ...parameters ) {
        super.create( key, ...parameters )

        return new this.get( key )( ...parameters )

    }

}

export { TInstancingFactory }