First of all: I'm not sure if my question is worded well, I just can't think of any better way. I'm also a beginner both at Monogame and programming in general, so my question might miss the actual issue or be based on incorrect assumptions / understanding regarding the topic.
Assuming the following simplified example: a 2D-game in Monogame with a base class Object, derived classes StaticObject and MobileObject and derived from the later the classes Human and Orc.
What is a good way of handling graphics (in the form of several sprite sheets) in this construct? What I can come up with:
a) non-static Texture2D => every instance carries around it's own copy of the sprite sheet, which sounds like a huge waste of resources if, e.g. i have a sprite sheet for 100 different StaticObjects, and a screen with 10 stones and 15 logs on it then has the memory footprint of 25 full sprite sheets, when either one sheet or even just 2% of one sheet would be enough.
b) static Texture2D => all draws from just one sprite sheet, but I don't know how I would deal with having different sprite sheets (after all, they are all the same reference now), and I would rather not put all graphics for all different object classes into just one sprite sheet
c) have a separate (static?) class that houses all the graphics and have all my objects get their graphics from that class => ??
Could anybody point me in the right direction? (Or tell me if I'm going the wrong way all together) Maybe this is also a quite common subject and I just google for the wrong terms, in which case just telling me what to look for would also be great.