> "OO is not bad when there is an actual entity - i.e. a stream, a socket, a window, etc to which an object corresponds, or in a simulation of actual entities. That's where it was born and where it shines. … For instance, don't customers buy products? Which should own the functions that involve both?"
What is the purpose of the customers / products app?
It's just data + relevant functions. Which is ok.
That's all there is, really.