intermediate

SOLID principles

Применяйте SOLID, чтобы responsibilities были focused, extension points explicit, subtypes substitutable, interfaces small, а dependencies inverted.