Sortowanie tablic z użyciem technik programowania obiektowego

Założenie: Napiszemy klasę, która będzie sortować tablicę obiektów reprezentujących produkty, wykorzystując interfejs sortowania.

Krok po kroku:

  1. Definicja interfejsu sortowania: Tworzymy interfejs Sortable, który definiuje metodę compare odpowiedzialną za porównywanie dwóch obiektów.
  2. 
    interface Sortable {
      public function compare(Sortable $other): int;
    }
    				
  3. Klasa produktu: Tworzymy klasę Product implementującą interfejs Sortable. Metoda compare porównuje ceny produktów.
  4. 
    class Product implements Sortable {
      public string $name;
      public float $price;
    
      public function __construct(string $name, float $price) {
        $this->name = $name;
        $this->price = $price;
      }
    
      public function compare(Sortable $other): int {
        if ($this->price < $other->price) {
          return -1;
        } elseif ($this->price > $other->price) {
          return 1;
        } else {
          return 0;
        }
      }
    }
    				
  5. Sortowanie tablicy: Używamy funkcji usort do sortowania tablicy obiektów Product. Funkcja usort przyjmuje jako drugi argument funkcję callback, która porównuje dwa elementy. W tym przypadku używamy metody compare z klasy Product.
  6. 
    $products = [
      new Product("Produkt A", 10.99),
      new Product("Produkt B", 5.50),
      new Product("Produkt C", 20.00),
    ];
    
    usort($products, function (Product $a, Product $b) {
      return $a->compare($b);
    });
    
    foreach ($products as $product) {
      echo $product->name . " - " . $product->price . "\n";
    }
    				

Ten przykład pokazuje podstawowe zastosowanie programowania obiektowego do sortowania tablic w PHP. Zachęcamy do dalszego zgłębiania tematu i eksperymentowania z różnymi metodami sortowania.

Dodaj komentarz 0

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