Klasy abstrakcyjne a typy wyliczeniowe

Założenie: Pokażemy, jak wykorzystać typy wyliczeniowe w definicjach klas abstrakcyjnych w PHP, tworząc klasę bazową definiującą stałe o określonych wartościach z wyliczenia.

Krok po kroku:

  1. Definicja typu wyliczeniowego: Zdefiniujmy typ wyliczeniowy reprezentujący status zamówienia.
  2. 
    enum OrderStatus {
        case Pending;
        case Processing;
        case Shipped;
        case Delivered;
        case Cancelled;
    }
    				

    Ten kod definiuje typ wyliczeniowy OrderStatus z pięcioma możliwymi stanami.

  3. Deklaracja klasy abstrakcyjnej: Stwórzmy klasę abstrakcyjną Order, która będzie korzystać z naszego typu wyliczeniowego.
  4. 
    abstract class Order {
        public OrderStatus $status;
    
        public function __construct(OrderStatus $status) {
            $this->status = $status;
        }
    
        abstract public function getStatus(): OrderStatus;
    }
    				

    Klasa Order posiada właściwość $status typu OrderStatus i abstrakcyjną metodę getStatus(), którą muszą zaimplementować klasy potomne.

  5. Implementacja klasy potomnej: Utwórzmy klasę ConcreteOrder dziedziczącą po klasie abstrakcyjnej Order.
  6. 
    class ConcreteOrder extends Order {
        public function getStatus(): OrderStatus {
            return $this->status;
        }
    }
    
    $order = new ConcreteOrder(OrderStatus::Pending);
    echo "Status zamówienia: " . $order->getStatus()->name; // Wyświetli: Status zamówienia: Pending
    				

    Klasa ConcreteOrder implementuje abstrakcyjną metodę getStatus() i tworzymy obiekt $order z początkowym statusem Pending.

Ten przykład pokazuje podstawowe wykorzystanie typów wyliczeniowych w klasach abstrakcyjnych w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi możliwościami!

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *