Character Classes are a specific systematization of the Roles (Design Pattern). It is a method of cleanly dividing verbs and goals between players as to create a division of labor, encourage cooperation, and rewards different modes of play.
The key to good class design is to make sure each class is unique in either it’s verbs, goals, or both. A common problem in multiplayer game design is creating too many classes with the game goal: deal damage. There’s only so many unique variations of “deal damage” in a given design space before characters are not meaningfully different in gameplay experience, resulting in Power Creep.
When a game necessitates far more character variety than there are goals or verbs to design entire classes around, isolating some of the methods and goals as Skills (Design Pattern) can mitigate some of the balance problems that a class system can often generate.
Classes and balance – Raph’s Website Do classes suck- – Raph’s Website Classes vs Skills in Game Design