Giving some info to better explain, my game is 3D, uses different shaders and hopefully will have deferred rendering in it once I manage to understand a few things on how monogame works.
I still didn't look much into SpriteBatch, is a new concept for me but correct me if I'm wrong, a SpriteBatch basicly is a bunch of graphical things being rendered in one draw call as long they have the same properties like shader or lighting value, so in the case I have different light conditions on some mesh or different materials I'd need another spritebatch for those, right?
My idea in how to roganize this stuff was to have an Entity class, this entity has inside it a colelction of Components, these components can reference each other. For example an entity can have a Player component, a Physics component and a Renderer component. When the components gets created they subscribe to a collection on the various managers, like a renderer would subscribe to Rendering manager which is in a singleton, and use the Game Draw loop to iterate trough those components to draw the stuff.
There is also a Camera component for the matrices and all this stuff, so based on what you said in my case I would need a SpriteBatch in the component of the renderer itself, and a custom Draw function then?
Could I potentially use the Camera to SpriteBatch renderers of the same type together?
Since I will ahve to add to some form of culling I might have to manage to identify the renderers on the fly and batch stuff together, well this is just thinkering, but thanks anyway for your reply, again.