When developing applications, it's very common to find situations where you'd
like to remember the state of an application, either in whole or in part, and
later return your application to a previous state.
Let's take a look at a real-world example...
Your footsteps echo down the unmarked path. Gravel shuffles everywhere as you
slow and strafe around the corner of a generic concrete bunker. You reach for
the double- barreled shotgun but it's too late. A loud bang rips through the
air but it's the soft thud as you hit the ground that confirms your worst
fear, you're dead...again. A quick click of the mouse and poof...like magic
you're all the way back to your last reached checkpoint.
If you're like me, you're all too familiar with this scenario. When you reach
the checkpoint for the first time, the application quickly stores essential
information about your character'... (more)