intermediate

OOP design principles

Предпочитайте contracts, composition, dependency injection и controlled mutability, чтобы object-oriented code оставался гибким при изменениях.