依赖、耦合、面向对象、依赖倒置、控制反转、依赖注入、面向接口编程




I avoid OOP as much as possible nowadays
I got carried away with it
At first it seemed like a great idea, modeling code after real world objects to make sense of data
After some time, I understood inheritance, polymorphism, etc., without an issue and embraced it... See more

For a good code design it's very important to use proper abstractions because they make our code loosely coupled . That means that different componenets of our code can be replaced with alternative implementations without affecting other components. When our code is loosely coupled it becomes easier to test, easier to extend, easier to reuse,... See more