You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter Clean Architecture中不同BLoC能否共享UseCase?

不同BLoC间是否可以共享UseCase?

完全可以共享UseCase,而且绝对不建议重复实现,原因和处理方式如下:

  • 从Clean Architecture的设计原则来看,UseCase是业务逻辑的抽象封装,它的核心价值就是复用性——只要某个BLoC的业务流程需要用到该UseCase的逻辑,就可以直接依赖它,无需重复编写相同代码。
  • 针对你当前的架构场景:
    • 你的GetAllProductsUseCase属于Products Feature的Domain层,如果SalesBloc需要获取产品数据来支撑销售相关业务(比如选择关联产品生成销售单),直接在SalesBloc的依赖注入环节引入这个UseCase即可。
    • 重复实现会导致代码冗余,后续业务逻辑变更时需要同时修改多份代码,大幅增加维护成本和出错概率。
  • 进阶优化建议:如果多个Feature都需要用到产品相关的通用业务逻辑,可以把这类通用的Domain层代码(比如基础的产品查询、增删改UseCase)抽离到独立的core或shared/domain目录下,让各个Feature的BLoC统一依赖这个共享模块,架构会更清晰、更易于维护。

内容的提问来源于stack exchange,提问作者Nicolas D'Angelo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:05:20