NOTE
Dependency Inversion Principle
Keeping high-level policy independent from volatile low-level implementation details.
This is a historical learning note and may contain outdated or incomplete understanding.
The Dependency Inversion Principle says high-level policy should not be forced to depend directly on volatile low-level details; both can depend on an abstraction that represents the high-level need.
This does not mean creating an interface for every class. Introduce an abstraction where there is a meaningful boundary, multiple implementations, external infrastructure, or a need to isolate policy for testing/evolution.