>>995OOP's purpose is the abstraction of data points in order to solve a problem.
In some cases this is ideal.
In other cases, it abstracts the details that matter, and we end up with outcomes we don't actually want.
Where OOP fails is when the designer of the system fails to solve the real problem. If the designer fails to realize the end solution, they fail to create objects that properly represent the data points.
This is the root of all OOP complaints.