2014 年 3 月,SAP Community 上有一篇很有意思的文章,题目就叫Shoot Me Up ABAP。它表面上在聊Dependency Injection,真正扎人的地方却不是概念定义,而是一个很多 ABAP 开发者都会遇到的日常痛点,我们明明已经接受了面向对象设计,愿意把职责拆细,也愿意把数据库访问、日志、模拟器、校验器这些东西各自塞进独立类里,结果写着写着,业务代码还没开始发力,CREATE OBJECT已经铺满屏幕了。与此同时,Dependency Injection在经典定义里谈的是把对象依赖交给外部装配者,Martin Fowler 也把它归到将配置和使用分离的思路里,并将其划分为构造器注入、Setter Injection和接口注入几种主要形式。(SAP Community)很多人第一次接触Dependency Injection,都会把它和单元测试绑死在一起。这个起点不能算错,因为测试替身、mock、stub的确是最容易看见收益的地方。可一旦把眼光从测试挪开,就会发现这套思路远不止是为了ABAP Unit服务