Hopefully you're familiar with the SOLID principles, particularly if you program in object oriented languages. The wisdom contained therein (mostly) isn't limited to object oriented languages, but such languages were the intended target.
If you…