Использует объектную декомпозицию
для разделения сложного функционала на более мелкие, независимые компоненты. Это позволяет улучшить модульность, читаемость и поддержку кода, а также упростить процесс разработки и отладки.