1. CustomersController завязан на конкретной реализации CustomersRepositary а не на абстракции остальные классы тоже - это уже не SOLID 2. Почему репозиторий знает про необходимый формат данных? CustomersAgeCollectionResource - нарушение SOLID "— Вы на ajax, веб будете делать новый репозиторий? Естественно. SOLID как раз об этом." Какой принцип солид это утверждает? Этим вы нарушаете принцип DRY "на самом деле избавился. Переменная в контроллере содержит имя переменной реквеста, которая подключает разные репозитарии, в зависимости. Опять же здесь для простоты это пропущено. " Тот же if только выше