繁体-dic-config-factory (中文(简体) )
说明
用于依赖性注射容器的抽象服务厂,可用于: @chubbyts/chubbyts-dic-config (英语), (中文(简体) ), 灵感来自 圆柱-拉米纳斯-配置-构件。 。 。 .
它减少了基于配置的服务工厂内的锅炉板:
resolveConfig:解决当前服务的(名)配置resolveDependency:如果容器存在,则通过容器解决依赖性,或者通过给定抽象工厂建立依赖性resolveValue: 解决一个值,通过匹配服务替换字符串(在数组/对象内重复)
所需资源
- 节点: 22
- @ chubbyts/ chubbyts-dic-types (英语): ^ 2.4.0 (中文(简体) )
安装
穿过 国家预防机制 作为 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你应该知道 {\fn黑体\fs22\bord1\shad0\3ahbe\4ah00\fscx67\fscy66\2chffffff\3ch808080}你是谁。 。 。 .
npm i @chubbyts/chubbyts-dic-config-factory@^1.1.0
使用量
工厂
import { createAbstractFactory } from '@chubbyts/chubbyts-dic-config-factory/dic-config-factory';
import { ServiceA } from '../service/service-a';
import type { Config } from '../config';
import { serviceBFactory } from './service-b-factory';
export const serviceAFactory = createAbstractFactory((container, { resolveConfig, resolveDependency }): ServiceA => {
return new ServiceA(
resolveConfig(container.get<Config>('config').serviceA ?? {}),
resolveDependency(container, 'serviceB', serviceBFactory),
);
});
与 @chubbyts/chubbyts-dic-config (英语)
import { createContainerByConfigFactory } from '@chubbyts/chubbyts-dic-config/dic-config';
import type { ServiceA } from './service/service-a';
import { serviceAFactory } from './factory/service-a-factory';
import { serviceBFactory } from './factory/service-b-factory';
const containerByConfigFactory = createContainerByConfigFactory({
serviceA: { key: 'value' },
serviceB: { key2: 'value2' },
dependencies: {
factories: new Map([
['serviceA', serviceAFactory()],
['serviceB', serviceBFactory()],
]),
},
});
const container = containerByConfigFactory();
const serviceA = container.get<ServiceA>('serviceA');
带名字
同样的抽象工厂可以被重复用于多种同类服务,例如: read (单位:千美元) write
数据库连接。 给定的名称解决相关的子配置( N)resolveConfig并附在
每个依赖(resolveDependency) (中文(简体) ).
import { createContainerByConfigFactory } from '@chubbyts/chubbyts-dic-config/dic-config';
import type { ServiceA } from './service/service-a';
import { serviceAFactory } from './factory/service-a-factory';
import { serviceBFactory } from './factory/service-b-factory';
const containerByConfigFactory = createContainerByConfigFactory({
serviceA: { read: { key: 'valueRead' }, write: { key: 'valueWrite' } },
serviceB: { read: { key2: 'value2Read' }, write: { key2: 'value2Write' } },
dependencies: {
factories: new Map([
['serviceAread', serviceAFactory('read')],
['serviceAwrite', serviceAFactory('write')],
['serviceBread', serviceBFactory('read')],
['serviceBwrite', serviceBFactory('write')],
]),
},
});
const container = containerByConfigFactory();
const serviceARead = container.get<ServiceA>('serviceAread');
const serviceAWrite = container.get<ServiceA>('serviceAwrite');
版权
2026 道米尼克·佐格(英语: