DPDT switch for on/off
Use of a double-throw switch can be very good for debouncing.  Wire one throw to VDD and the other to VSS; wire the pole to an input, adding a small cap to ground.  Even if there's some bounce on the contacts, the switch signal won't go high until the high-side contact is closed, and once it's gone high it won't go low until the low-side contact is closed.  There are some slightly more robust approaches feeding the signal through logic gates, but the capacitor-hold approach is nice and simple.