Open/Closed Principle

Stable software should accept expected variation through extension without repeated modification of its core policy.