Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 42 43 44 45 46 47 48 49 50 51 | import * as Interface from './interface'; import * as Types from './types'; import {Connection} from './controller/connection'; // ==================================== ConnectionFactory =====================================// /** * Класс-шаблон, который предоставляет возможность другим классам создавать объект типа Interface.Connection */ class ConnectionFactory<ConnectionType extends Interface.Connection> { private connectionClass: new (outSource: Types.Sources, arg2?: (Types.Sources|Types.SourcesArray)) => ConnectionType; /** * Конструктор фабрики, принимает класс, который необходимо создать * @param connectionClass класс который необходимо создать */ constructor(connectionClass: new (outSource: Types.Sources, arg2?: (Types.Sources|Types.SourcesArray)) => ConnectionType) { this.connectionClass = connectionClass; } /** * Перегрузка метода создания Сonnection подробнее см. {@link Connection} */ create(outSource: Types.Sources): ConnectionType; /** * Перегрузка метода создания Сonnection подробнее см. {@link Connection} */ create(outSource: Types.Sources, inSource: Types.Sources): ConnectionType; /** * Перегрузка метода создания Сonnection подробнее см. {@link Connection} */ create(outSource: Types.Sources, inSourceArray: Types.SourcesArray): ConnectionType; /** * Перегрузка метода создания Сonnection подробнее см. {@link Connection} * @param outSource * @param arg2 * @returns элемент Connection */ create(outSource: Types.Sources, arg2?: (Types.Sources|Types.SourcesArray)): ConnectionType { if (arg2){ return new this.connectionClass(outSource, arg2); } return new this.connectionClass(outSource); } } // ==================================== ConnectionFactory =====================================// const Factories = { Connection: new ConnectionFactory<Connection>(Connection) }; export {Factories}; |