I try to only create objects for "tangible" ideas. A MouseManager manages the mouse, a Application executes a game, ect. All logic for your Game object should go in your Game class, but if you feel it's becomming bloated or messy try and think of a way to abstract it. Maybe take a look at an opensource library like libgdx and see How they're managing entities. Try not to create more objects then you need, having a "logic" class for game logic seems a bit out of place.
You really shouldn't worry about code design as much as you might think. Next game you'll salvage as many mangled pieces of this game as you can and probably rewrite most of your code base with new found experience.
I've taken up using Unity because I cannot stop myslef over engineer my frameworks. Maybe look at an engine if games are your focus. There is shame yes but it's nice to actually make progress.