问题域/PD-402

工厂模式与组件注册

Factory Pattern & Component Registry

通过工厂模式实现组件可插拔,统一注册和实例化多种后端实现

子问题

1.多后端统一抽象

2.配置驱动的实例化

3.单例复用避免重复创建

4.新后端的零侵入扩展

5.时间字段污染缓存键导致伪重复实例

6.不同后端构造签名不统一时的工厂变体选择

7.工厂方法中的跨组件依赖注入

各项目的解法1 solutions

Signals

横向对比

维度MemOS
注册方式ClassVar[dict] 静态映射表,14 个 Factory 统一协议
配置校验双层 Pydantic ConfigFactory,model_validator 自动转换 config dict 为强类型
单例策略WeakValueDictionary + MD5(config_json) 缓存键,时间字段自动过滤
扩展机制映射表加一行 + 实现 Base 类,零侵入
工厂变体标准映射 / if-elif 分支 / 依赖注入 / 便捷方法四种变体共存

最佳实践

1.backend_to_class 映射表集中管理

2.from_config 工厂方法统一入口

3.singleton_factory 装饰器确保单例

4.WeakValueDictionary 自动回收无引用实例避免内存泄漏

5.Pydantic model_validator 在配置加载阶段完成类型转换和校验

6.Factory 继承 Base 抽象类使工厂本身可作为类型注解