The goal of this post is to present Game and Screen classes and how they can be used together.
Their lifecycles are highlighted using logging capabilities.
Through Game and Screen classes, it is possible to split logic and visualization: the Game class will contain the logic, while the visualization could be organized in several screen classes (one for the game itself, one for high scores, on for help...).
The Game class will manage the screen changes.