This commit is contained in:
2025-10-11 11:30:44 +08:00
parent 9a90f1258b
commit 49d7f2c37e
7 changed files with 861 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
/**
* 服务容器接口
* 负责管理和提供所有系统服务的实例
*/
export interface IServiceContainer {
/**
* 注册服务
* @param id 服务唯一标识符
* @param factory 服务工厂函数
* @param dependencies 依赖的服务ID数组
*/
register<T>(id: string, factory: ServiceFactory<T>, dependencies?: string[]): void
/**
* 获取服务实例
* @param id 服务唯一标识符
* @returns 服务实例
* @throws 当服务未注册时抛出错误
*/
getService<T>(id: string): T
/**
* 检查服务是否已注册
* @param id 服务唯一标识符
* @returns 是否已注册
*/
has(id: string): boolean
/**
* 初始化所有服务
* 按照依赖关系顺序初始化服务
*/
initialize(): void
}
/**
* 服务工厂函数类型
* @param container 服务容器实例
* @returns 服务实例
*/
export type ServiceFactory<T> = (container: IServiceContainer) => T