I\'m a freshman in college going for my computer science degree... I\'ve programmed plenty the last several years but just lately I\'ve been getting more into theoretical id
The MVC concept of centralizing user interaction logic is a good model for game development.
I've done a little work with Flash game development. Here is an article about object pools in Flash. The concept is cross-platform and may give you some ideas.
You're right to be concerned with all the stuff going on at one time. Depending on your game design, your game loop can have a lot to deal with. This is where you'll learn all the dirty optimization tricks, often the hard way :)
There are many ways to organize your code- one option might be to write a GameManager class as a Singleton. All game objects tie back to it for management and user interaction. The GameManager handles all user input and dispatches messages to its object pool. You can use interfaces to define common communication patterns between game objects and the GameManager.
As far as performance optimization goes, threading is very powerful. Asynchronous operation can ensure that you're not wasting those precious cycles.