~ Dependency injection ~

Indirection Vs. Abstraction

Abstractions may be indirections, but indirections are NOT abstractions. Confuse them at your own peril.