As others have said, it really depends on what you are trying to accomplish. This could be seen as a larger question for object-oriented programming in general and not just for game development:
For any given piece of functionality, is it more suitable to encapsulate this functionality as a new class, or to place the functionality in an existing class?
Here are a few questions that might indicate the need to create a new class:
- Will this functionality be something I want to pass around as a parameter to other classes or methods?
- Will implementing this functionality require maintaing internal state that should persist over several calls, but is not the direct concern of another class?
- Will this functionality be re-used as a component by other classes?
Another way to look at this decision is to consider the Law of Demeter, also called the Principle of Least Knowledge, a guideline for object oriented design:
http://en.wikipedia.org/wiki/Law_of_Demeter
Here is a (non-programming) example from the Wikipedia article:
When one wants to walk a dog, it would be folly to command the dog’s legs to walk directly; instead one commands the dog and lets it take care of its legs itself.
Let's say you have a "leg" class (a sprite) that you need to move around the screen. You could certainly create a method inside the leg class to tell the leg to move around the screen, but this would violate the principle of Least Knowledge. Alternatively, you could create a method inside the world (Game1) to tell the world to move the legs around, which is no better. A better approach might be to make a dog class (a SpriteManager which is subclassed from GameComponent) which composes a list of sprites as a private field. If the SpriteManager is added as a component to the Game1 instance, the Game1 Update method's call to base update will also call the Update method of the SpriteManager, where you can iterate through your list to update each sprite.
This may not be the best or only way of doing things, but I think it works as an example to demonstrate a method of decomposing the functionality of your program to decide what should be encapsulated as a class.