Фабричный метод

Фабричный метод

Фабричный метод — это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.

Пример реализации паттерна "Фабричный метод" на PHP

Абстрактный класс Logistics

abstract class Logistics
{

  public function delivery()  
  {  
    $transport = $this->createTransport(); 
    return $transport->deliver();      
  }
  
  /**  
  * @return Transport  
  */  
  abstract public function createTransport(): Transport;
  
}

Подкласс RoadLogistics

class RoadLogistics extends Logistics
{

    /**
     * @return Transport
     */
    public function createTransport(): Transport
    {
        return new Truck();
    }

}

Подкласс SeaLogistics

class SeaLogistics extends Logistics
{

    /**
     * @return Transport
     */
    public function createTransport(): Transport
    {
        return new Ship();
    }

}

Интерфейс Transport

interface Transport
{

    /**
     * @return string
     */
    public function deliver(): string;

}

Класс Truck доставки по дороге на грузовике

class Truck implements Transport
{

    /**
     * @return string
     */
    public function deliver(): string
    {
        return 'Delivery by truck';
    }

}

Класс Ship доставки по морю на корабле

class Ship implements Transport
{

    /**
     * @return string
     */
    public function deliver(): string
    {
        return 'Delivery by ship';
    }

}

Похожие статьи

Абстрактная фабрика

Абстрактная фабрика — порождающий шаблон проектирования, предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретных классов.

Фабричный метод

Фабричный метод — это порождающий паттерн проектирования, который определяет общий интерфейс для создания объектов в суперклассе, позволяя подклассам изменять тип создаваемых объектов.

Copyright © 2026 PHP Blog - шпаргалки программиста