Цитаты : "В этом примере хорошо то, что мы внедрили зависимости класса, но теперь мы жёстко привязаны к Pusher SDK. Если методы Pusher SDK изменятся, или мы решим полностью перейти на новый сервис событий, то нам надо будет переписывать CreateOrderHandler."
Не понятно. Напиши EventPusher, используй везде где можешь. Меняй код только одного файла. - EventPusher'a. Просто лично для меня больше файлов - больше путаниц. Может кто объяснить по подробнее в чем практическое применение интерфейсов?
Есть такой принцип в программировании: программируй интерфейсами, а не классами. Цель — показать какие методы можно юзать у твоего класса для работы с ним, а реализация остается за тобой и никто не будет в неё вникать. А если кому-то понадобится написать новую логику, он просто напишет новый класс, который будет реализовывать твой интерфейс, но работать по другому. Так делают потому, что есть еще один принцип программирования, классы должны быть закрыты для изменения, но открыты для расширения. Как-то так.