I have programmed using the architecture below, where "client, order, piece" are just data classes, they do not have methods, and "administrators" are the manipulators of that data, the "ClothingStore" is an envelope where there is no logic, only Call the methods of the managers and return what they return, so "ClothingStore" would be a library that integrates the parts of the project.
In the last project I used this architecture, I called one "administrator" to another in the constructor, when he needed to communicate with the other, it was a simple school project, which had to be delivered soon, but in other projects I created a "pub / subsystem" "for this communication.
I would like to hear criticism of this architecture and possible improvements in it, and other types of architectures that could serve me.
As I tried to start a conversation with one of my teachers, and he said what I did was wrong, he told me to associate "client" with "order", that he put the methods in "client" and "order", he said that this would avoid unite the things as he was doing, "all in the wrapper", but I felt that he did not even know what a wrap was and I abandoned the conversation. I think that in another way, I do not like to mix data with manipulation data. , the previous architecture I did exactly to undo things, but sometimes I feel something is wrong, I could improve, so I'm here.
I also wanted to know where I can read more about this kind of stuff, books, blogs, etc.