“Encapsulate the concept that varies.”

Erich Gamma, Design Patterns