Набросал структуру классов учебного сайта доски объявлений, как еще лучше распределить функционал?
Смотрите дальше курсы Елисеева. У него есть урок по проекту менеджеров. Где он разбивает все по паттерну CQRS. Вот ссылка на доменный слой https://github.com/ElisDN/demo-project-manager/tre...
У вас получается, что UserService это Handler или UserHandler, если вы держите это все в одной папке. Посмотрите структуру. Я сейчас так же делаю и это очень просто понять. В UseCase папки то, что нужно делать:
UseCase/User/Create
В ней Файлы:
Command.php
Handler.php
Form.php
Или так:
UseCase/User
В ней Файлы:
UserCreateCommand.php
UserHandler.php
UserCreateForm.php
Если касаемо вашего, то не нужно повторять название методов в классе. UseServise метод просто login, а не userLogin
Так же по названиям немного надо получше подумать. UserLoginOrLogoutServise удобнее назвать AuthServise...
Не понятно откуда столько методов с началом в названии display
Внедряйте репозиторий.
Городить кучу классов не надо. вообще не надо. Думаешь это круто смотрится? Handle хуяндле... начитаются всяких Елисеевых... возможно и круто, но поддерживать это говно такое себе.
сделай компоненты - т.е есть несколько сервисов и есть фасад, который агрегирует сервисы
https://refactoring.guru/ru/design-patterns/facade
component/User/Facade.php - здесь выносишь наружу методы которые ты хочешь использовать везде.
component/User/AuthenticateService.php - здесь методы регистрации, авторизации, выхода
component/User/SettingsService.php - здесь методы смены юзернейма и тд
component/User/Entity/User.php - сущность из БД
component/User/UserRepository.php - здесь методы работы с БП . В эти методы ты передаешь User.php
(мне нравится Service всегда дописывать, как вздумается вообщем. Главное чтобы понятно было другим людям)
делаешь еще компонент  
component/Adv/Facade.php - здесь методы про объявления
и также делаешь внутренние сервисы.
Смотри чтобы не было цикличных зависимостей.
Постарайся использовать внешний EventListener - типа юзер первый раз авторизовался, выкидываешь это событие. Ловишь в компоненте Adv и создаешь ему демо объявление. Как пример. 
Так ты будешь поддерживать слабую связанность.