Next time you hear yourself utter these words try to dig a little deeper into the issue. You'll probably find that what you've heard is taken out of context, utterly wrong or at the very least misleading.
In this case, by digging a little deeper you'd probably end up asking yourself some of these questions:
- How many
SpriteBatches is too many? 2, 3, 10, 50, 100?
- Is my other approach actually more efficient? (passing around a vector to all sprites carries a cost as well)
- What kind of performance do I actually need in my game? (60 fps?)
- Could there be any other more important things affecting the performance? (e.g using too many textures, etc?)
The actual answer can be a little complicated. There are many things that can affect rendering performance. Chances are it won't be what you think it will.
It think it's great that you're thinking about efficiency vs simplicity. But (and this is my point) you should always think about simplicity first and efficiency second. Doing it the other way around will just give you a headache
My advice, try the simplest thing that works and keep an eye on your frame rate. There's a pretty good chance you'll spend a lot less time worrying about efficiency / performance until it actually matters. Your code will be simpler and you'll end up optimizing the right areas rather than the wrong ones.