Sobes.tech
Intern

Proqramlaşdırma obyekt yönümlü paradigması (PO) nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Obyekt yönümlü proqramlaşdırma (OOP) — bu proqram təminatını inkişaf etdirmək üçün yanaşmadır və proqramın qarşılıqlı təsir edən obyektlər toplusu kimi təqdim olunmasına əsaslanır, hər obyekt sinfinin nümunəsidir və vəziyyətə (xüsusiyyətlər) və davranışa (metodlar) malikdir.

OOP-nin əsas prinsipləri:

  • İnkapsulyasiya: Məlumatların (xüsusiyyətlərin) və bu məlumatlarla işləmək üçün metodların bir məntiqi vahid — obyekt daxilində toplanması. Ob’ektin daxili həyata keçirilməsinin xarici dünyadan gizlədilməsi.
    class Dog {
        private var name: String // Gizli xüsusiyyət
        
        init(name: String) {
            self.name = name
        }
        
        func bark() { // Əlaqə metodu
            print("\(name) havlayır!")
        }
    }
    
  • Miras: Mövcud sinflərdən (üst sinflər) yeni sinflər (alt sinflər) yaratmağa imkan verən mexanizm, onların xüsusiyyətlərini və metodlarını miras alır. Kodun təkrar istifadəsini və sinif hiyerarşilərinin qurulmasını təmin edir.
    class Animal {
        func eat() {
            print("Heyvan yeyir.")
        }
    }
    
    class Cat: Animal { // Cat, Animal-dan miras alır
        func meow() {
            print("Pişik miyavlayır.")
        }
    }
    
  • Çox formulluluq: Müxtəlif siniflərin obyektlərinin eyni mesaj (metod çağırışı) üzərində fərqli cavab vermə qabiliyyəti. Sistemin elastikliyini və genişləndirilə bilməsini təmin edir.
    class Shape {
        func draw() {
            // Əsas həyata keçirmə
        }
    }
    
    class Circle: Shape {
        override func draw() { // draw metodunun yenidən yazılması
            print("Dairə çəkilir.")
        }
    }
    
    class Square: Shape {
        override func draw() { // draw metodunun yenidən yazılması
            print("Kvadrat çəkilir.")
        }
    }
    
    let shapes: [Shape] = [Circle(), Square()] // Müxtəlif tiplərdə obyektlər array-i
    for shape in shapes {
        shape.draw() // Hər obyekt üçün fərqli draw tətbiqi çağırılır
    }
    
  • Abstraksiya: Bir obyekt və ya sistemin əsas xarakteristikalarının vurğulanması, önəmli olmayan detallardan imtina edilməsi. Real dünya modelləri ilə daha yüksək səviyyədə işləməyə imkan verir.

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

  • Kodun təkrar istifadəsi
  • Daha yaxşı modul və strukturlaşdırma
  • Baxım və genişləndirmə asanlığı
  • Real dünyanı daha yaxşı anlama və modelləşdirmə

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

  • Sadə tapşırıqlar üçün mürəkkəbləşmə ehtimalı
  • Bəzi hallarda daha çox resurs (yaddaş, vaxt) sərfiyyatı

Swift, Objective-C və digər proqramlaşdırma dillərində mürəkkəb və saxlanılan tətbiqlər yaratmaq üçün istifadə olunur.