OO is supposed to be about modularisation right? Separating your concerns and all.
Suppose I told you there were two major areas of your code that were deeply intertwined. Each is intimately connected to the other and it was almost impossible to tell where one started and the other began, yet the two were really very different.
Doesn’t sound very modular, does it? Practically the antithesis of good OO practice.
Suppose I now told you those two areas were “behaviour” and “data”.
Don’t mind me. Just thinking out loud…