Sobes.tech
Junior

Obyekt yönümlü proqramlaşdırma (OOP) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt-yönümlü proqramlaşdırma (OOP) — bu "obyektlər" konsepsiyasına əsaslanan proqramlaşdırma paradigmasıdır; bu obyektlər məlumatlar (sahələr, atributlar) və metodlar (prosedurlar, funksiyalar) ehtiva edir.

OOP-nin əsas prinsipləri:

  • İnkapsulyasiya: obyektin daxili tətbiqini gizlətmək, məlumatlara və metodlara yalnız müəyyən interfeys vasitəsilə giriş imkanı vermək. Bu, kodun təhlükəsizliyi və çevikliyini təmin edir.
  • Miras: mövcud siniflərdən (ata) yeni siniflər (qardaşlar) yaratmaq, onların sahələrini və metodlarını miras almaq. Bu, kodun təkrar istifadəsini və obyektlərin ierarxiyalarını yaratmağa imkan verir.
    // Ata sinif
    class Person {
        constructor(name) {
            this.name = name;
        }
    
        greet() {
            console.log(`Salam, mənim adım ${this.name}`);
        }
    }
    
    // Qardaş sinif
    class Employee extends Person {
        constructor(name, position) {
            super(name); // Ata sinifin konstruktorunu çağır
            this.position = position;
        }
    
        introduce() {
            console.log(`Mən ${this.name} və mən ${this.position}`);
        }
    }
    
    const employee = new Employee("Ivan", "İnkişafçı");
    employee.greet(); // Ata sinifin metodunu çağırır
    employee.introduce();
    
  • Polimorfizm: müxtəlif siniflərin obyektləri üçün eyni interfeysi istifadə etmək imkanı. Bu, obyektləri tiplərinə baxmayaraq, vahid şəkildə işləməyə imkan verir.
    class Animal {
        speak() {
            console.log("Heyvan səs çıxarır");
        }
    }
    
    class Dog extends Animal {
        speak() {
            console.log("Hav!" );
        }
    }
    
    class Cat extends Animal {
        speak() {
            console.log("Miyav!");
        }
    }
    
    const animals = [new Dog(), new Cat(), new Animal()];
    
    animals.forEach(animal => {
        animal.speak(); // Hər obyekt üçün uyğun metodu çağırır
    });
    
  • Abstraksiya: obyektin əsas xüsusiyyətlərini vurğulamaq və qeyri-əsas detalları gizlətmək. Bu, sistemləri anlamağı və işləməyi asanlaşdırır.

Frontend inkişafında OOP istifadəsi:

  • Komponent modeli (React, Vue, Angular): hər komponent öz vəziyyəti (məlumatlar) və metodları (davranışlar) olan obyekt.
  • API ilə işləmək: serverdən alınan məlumat obyektləri.
  • İstifadəçi interfeysinin xüsusi elementlərinin yaradılması: obyektlər ilə müəyyən məntiq və görünüş.

OOP-nin üstünlükləri:

  • Kodun təkrar istifadəsi: irsi və kompozisiya vasitəsilə.
  • Modularlıq: kod müstəqil obyektlərə bölünür.
  • Çeviklik və miqyaslama: sistemin dəyişdirilməsi və genişləndirilməsi daha asandır.
  • Daha yaxşı oxunaqlıq: kod daha strukturlaşdırılmış və anlaşılandır.

OOP-nin çatışmazlıqları:

  • Yeni başlayanlar üçün daha çətin başa düşülə bilər.
  • Yaxşı dizayn olunmadıqda, artıq kodlara səbəb ola bilər.
  • Hər növ tapşırıq üçün uyğun olmaya bilər.