Injecting the SDK is not dependency inversion
transcript
A teammate passes the SDK into the constructor. Is that dependency inversion? Not quite. It's dependency injection. Close cousins, different rules.
It's injection. A test can pass in a different SDK object. But the checkout still names the vendor's class. And it still speaks the vendor's language: paise and status strings.
Inversion: the checkout points at a Charger. The Charger is the checkout's own interface. Rupees in, yes or no out. An adapter implements it, and wraps the vendor. Now only the adapter knows the vendor. Swap the vendor, and the checkout never notices.
Here's the catch. Injection is how a part arrives. Inversion is who owns the interface, and which way the arrow points. You can have the first without the second.
Write the interface in your own terms. Then a vendor change touches the adapter, and nothing else. That's the inversion: the arrow points at you.
Full breakdown in the lecture.