请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

领域驱动设计层级疑问

老师,service_dependencies.py文件中下面这个方法中使用到了FileAppConfigRepository这个类,我的疑问是service_dependencies.py文件在接口层,而FileAppConfigRepository在基础设施层,在DDD中接口层能访问基础设置层吗?在视频5-7中好像没有说明。

def get_app_config_service() -> AppConfigService:
    """获取应用配置服务"""
    # 1.获取数据仓库并打印日志
    logger.info("加载获取AppConfigService")
    file_app_config_repository = FileAppConfigRepository(settings.app_config_filepath)

    # 2.实例化AppConfigService
    return AppConfigService(app_config_repository=file_app_config_repository)

第二个疑问,app_config_routes.py文件中使用了LLMConfig类,app_config_routes.py在接口层,LLMConfig类在领域层,在DDD中接口层能访问领域层吗?在视频5-7中好像没有说明。

@router.get(
    path="/llm",
    response_model=Response[LLMConfig],
    summary="获取LLM配置信息",
    description="包含LLM提供商的base_url、temperature、model_name、max_tokens"
)
async def get_llm_config(
        app_config_service: AppConfigService = Depends(get_app_config_service)
) -> Response[LLMConfig]:
    """获取LLM配置信息"""
    llm_config = await app_config_service.get_llm_config()
    return Response.success(data=llm_config.model_dump(exclude={"api_key"}))

正在回答 回答被采纳积分+3

1回答

泽辉呀 8天前

其实是这样的:

  1. 接口层访问application的服务层;

  2. 将依赖注入的文件放在接口层,主要是便于管理,将对应的服务进行实例化;

  3. 服务中访问了Domain领域层,但是构建实例时,传递的是基础设施层的类,这样有一个好处,如果某个服务想更改实现方式,因为服务注入的是Domain领域层(这里定义的只是接口),服务可以不用改变任何代码,只需要创建新类继承对应的接口然后实现,修改注入的方式即可;

  4. 所以并不是接口层访问基础设施层(依赖注入管理文件不是接口层),接口层->服务层->Domain领域层<==>基础设施层实现Domain。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号