I'd call this pattern a service factory approach given what's being shown. Usually dependency injection hides the service specifics from the consumer. I'd say I want my class to have an iterator and some framework thing would assign a class to my constructor that fulfills that interface. This may seem like a pedantic point but at the level of distinguishing something as a dependency injection we're getting down to the really fine grained distinctions... pretty much everything needs to do sort of the same thing (build services into other services) and the different approaches are really just about how we specifically do that.
It does and they're kinda weird (if you're used to more like Java-style interfaces). It flips the dependency between the interface and implementor on its head. Worth looking it up, it's interesting.