Separation by interface maybe? the idea is that now the dependency is on the type or the structure instead of anything more concrete or more vague. This is preferable since it is both explicit and predictable, scales local reasoning, can be checked through static analysis, etc