Если цель собственно в декаплинге, то больше и никак. Либо DI либо какой-то "API", где под API имеется ввиду запрос к чему-то внешнему относительно нашего приложения, либо реальный API, либо какие нибудь, сокеты, очереди, etc. Во втором случае каплинга как такового не будет вовсе.
и инверсию контроля
- инверсия контроля (IoC) это немного про другое, вы имели ввиду Dependency Inversion скорее всего.