Sobes.tech
Junior — Middle

Obyekt yönümlü proqramlaşdırmada abstraksiya anlayışının nə olduğunu izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırmada abstraksiya, mürəkkəb həyata keçirmə detalları gizlətməyə və istifadəçiyə yalnız obyektlə qarşılıqlı əlaqə üçün lazım olan interfeysi göstərməyə imkan verən prinsiptir. PHP-də bu, çox vaxt abstrakt sinflər və interfeyslər vasitəsilə həyata keçirilir; bunlar, konkret həyata keçirilmədən metodlar toplusunu müəyyən edir.

Məsələn, Animal adlı abstrakt sinf makeSound() metodunu elan edə bilər, lakin onu həyata keçirməz. Konkret sinflər, məsələn, Dog və ya Cat, Animal-dən miras alar və bu metodu öz üsulları ilə həyata keçirərlər. Bu, obyektlərlə ümumi interfeys vasitəsilə işləməyə imkan verir, hər birinin həyata keçirilmə detalları ilə məşğul olmadan.

abstract class Animal {
    abstract public function makeSound();
}

class Dog extends Animal {
    public function makeSound() {
        echo "Hav-hav";
    }
}

class Cat extends Animal {
    public function makeSound() {
        echo "Miyav";
    }
}

function playSound(Animal $animal) {
    $animal->makeSound();
}

playSound(new Dog()); // Çıxış: Hav-hav
playSound(new Cat()); // Çıxış: Miyav

Bu şəkildə, abstraksiya çevik və genişlənə bilən sistemlərin yaradılmasına kömək edir, interfeysi həyata keçirməkdən ayırır.