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

开闭原则如何决定接口实例选用?Clean Architecture相关实现咨询

问题解答

不需要新建Financial Report Controller的新实例。

按照Bob大叔在《Clean Architecture》里基于开闭原则给出的架构设计,Financial Report Controller依赖的是抽象的Presenter接口,而非Screen Presenter、Web Presenter这类具体的实现类。

要新增PDF格式展示数据,只需要做两件事:

  • 实现一个符合抽象Presenter接口的PDF Presenter类,把PDF需要的页眉、页脚排版和数据渲染逻辑都封装在里面
  • 将这个PDF Presenter实例注入到已有的Financial Report Controller中即可

这种设计完美契合开闭原则:扩展新的展示格式时,完全不用修改控制器的代码(对修改关闭),只需要新增对应的Presenter实现(对扩展开放)。控制器的职责仅负责获取数据,然后把数据交给抽象的Presenter处理展示,具体用什么格式展示,完全由不同的Presenter实例来决定。

内容的提问来源于stack exchange,提问作者rbansal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:56:02