Tabs vs Spaces, Static vs Singleton.
Yes, make sure you have maintainable code
Don't worry about optimization of method calls right now
Sometimes it is OK to have static properties and methods
Othertimes it isn't
At the end of the day, did you ship a game?
Now That I am done trying to dodge your question, and have surely guaranteed at leas 1 downvote, I'll try to answer it as best as I can.
I see you have the XNA tag, so I will answer according to that. XNA provides a nifty feature that lets you create an instance of a class and pass it around to whatever needs it.
Game.Services is what you want to look at. This is great for keeping a reference to a component that needs to be shared.
I like to avoid Singletons, but that is just me. Sometime they are what is best used. Static classes shouldn't be shunned either. Just look at the MediaPlayer class. I can't think of others, but my gut tells me there are a few others that are static.
Take, for example, a collision detection component. If it is expensive to create a new one and it can be shared without problems, perhaps you make it static/singleton. Maybe you store it in Game.Service and access it that way. BUT I would wager that it is very cheap to
new one up, and you really only need to have 1 per scene/level. What would be wrong with just creating a new one for each level? Unless your levels change at the rate of a couple a minute you won't really be accumulating that much garbage. Most likely you will only need to new one up every few minutes or so.
I think the last two paragraphs from the article I linked at the top are very fitting
Simplicity is beautiful. Simple doesn’t mean hard-coding, it doesn’t
mean cutting corners or being sloppy – it means building what you’ve
been asked to build, not a rocket to Saturn and most of the time it’s
a skateboard to the corner store.
Not every application needs to be stitched together from Codebetter
posts and Twitter rants. Focus on what’s important – the experience,
not what’s under the hood. You’ll change that quite a few times no
matter what you think :).