<?php require_once __DIR__ . '/vendor/autoload.php'; use Hp\Patterns\Observer\Card; use Hp\Patterns\Observer\CardObserver; use Hp\Patterns\ServiceLocator\RegisterService; use Hp\Patterns\ServiceLocator\ServiceLocator; use Hp\Patterns\DependencyInjection\CreditCard; use Hp\Patterns\DependencyInjection\ATM; // Service Locator $locator = new ServiceLocator(); $locator->addInstance('RegisterService', new RegisterService(['user1', 'user2'])); $service = $locator->get('RegisterService'); $service->register('user3'); $users = $service->getUsers(); foreach ($users as $user) { echo $user."\n"; } echo "\n"; // Dependency Injection $card = new CreditCard('1234 5678 9012 3456', 5281.31, 'Иванов Иван Иванович'); $atm = new ATM($card); $atm->getCardInfo(); echo "\n"; // Observer $observer = new CardObserver(); $card = new Card(); $card->attach($observer); $card->deposit(1000); $observer->getSumUpdatedCards();