When people combine methods and data into a class in a way such that you are recommending, I wonder if they truly value the single responsibility principle. In my mind, storing both schema and behavior in the same class qualifies as a violation of the SRP. Do you disagree with me that this is a 'violation', or do you just not think the SRP is important?
I can’t disagree enough. From Wikipedia:
An object contains encapsulated data and procedures grouped together to represent an entity.
The whole point of OOP is to encapsulate both data & behavior. To assume otherwise leads us to stateless functions and isolated DTOs.
Or, in other words, procedures and structures. And I think I’ll leave that to C.