← Каталог
Laravel - MVC-фреймворк и паттерны проектирования — Объекты состояний
Фрагмент из «Laravel - MVC-фреймворк и паттерны проектирования»: Объекты состояний.
interface OrderState
{
public function pay(Order $order);
public function ship(Order $order);
}
class PendingState implements OrderState
{
public function pay(Order $order)
{
$order->setState(new PaidState());
}
public function ship(Order $order)
{
throw new Exception('Cannot ship unpaid order');
}
} interface OrderState
{
public function pay(Order $order);
public function ship(Order $order);
}
class PendingState implements OrderState
{
public function pay(Order $order)
{
$order->setState(new PaidState());
}
public function ship(Order $order)
{
throw new Exception('Cannot ship unpaid order');
}
}