{"ref":"capability:dependency-injection","page":"/capabilities/dependency-injection","json":"/capabilities/dependency-injection.json","generated":"2026-10-26","drafted_with_ai":true,"entity":{"id":"dependency-injection","name":"Dependency injection","domain":"developer-experience","ecosystems":["abap"],"universal":false,"description":"Wiring an object's collaborators from outside it, so a class can be swapped for another implementation without editing the code that uses it.","short":"Wiring an object's collaborators from outside it","core_coverage":{"state":"community-only","assessed_at":"2026-09-14","sources":[{"url":"https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-us/abentest_seams.htm","title":"ABAP Keyword Documentation 7.51: Test Seams","checked":"2026-09-14","quote":"Injections can only be created in test classes that are defined in a test include."}],"note":"There is no container to ship. What the language has for replacing a collaborator is test seams, which swap a block of production code for an injection written in a test class and nowhere else. Swapping it only for the run is the concern of [testing](capability:abap-unit-testing), not this capability."},"drafted_with_ai":true},"sap_delivery":{"door":"abap","all":null,"by_flavor":{"standard-abap":null,"abap-cloud":null}},"edges":{"use_cases":[],"shared_tasks":[],"related_tasks":[],"options":[{"ref":"artifact:bothzoli-abap-ioc-container","name":"bothzoli/ABAP-IoC-Container","json":"/artifacts/bothzoli-abap-ioc-container.json","ecosystem":"abap","origin_ring":"independent"},{"ref":"artifact:swixfort-sdw-abap-di","name":"swixfort/Sdw.Abap.Di","json":"/artifacts/swixfort-sdw-abap-di.json","ecosystem":"abap","origin_ring":"independent"}],"samples":[],"explained_by":[],"normative_context":[]}}