Sobes.tech
Junior

Šta je objektno-orijentisano programiranje (OOP)?

sobes.tech АИ

Одговор од АИ

Објектно-оријентисано програмирање (ООП) је парадигма програмирања заснована на концепту "објеката", који садрже податке (поља, атрибути) и методе (процедуре, функције).

Основни принципи ООП:

  • Инкапсуација: скривање унутрашње реализације објекта, приступ подацима и методама само преко одређеног интерфејса. Обезбеђује безбедност и флексибилност кода.
  • Наслеђивање: стварање нових класа (дете) на основу постојећих (родитељских), наследјући њихова поља и методе. Омогућава поновну употребу кода и стварање хијерархија објеката.
    // Родитељска класа
    class Person {
        constructor(name) {
            this.name = name;
        }
    
        greet() {
            console.log(`Здраво, ја се зовем ${this.name}`);
        }
    }
    
    // Дете класа
    class Employee extends Person {
        constructor(name, position) {
            super(name); // Позив конструктора родитељске класе
            this.position = position;
        }
    
        introduce() {
            console.log(`Ја сам ${this.name} и ја сам ${this.position}`);
        }
    }
    
    const employee = new Employee("Иван", "Развојни инжењер");
    employee.greet(); // Позива метод родитељске класе
    employee.introduce();
    
  • Полиморфизам: могућност коришћења истог интерфејса за објекте различитих класа. Омогућава обраду објеката на уједначен начин, без обзира на њихов тип.
    class Animal {
        speak() {
            console.log("Животиња издаје звук");
        }
    }
    
    class Dog extends Animal {
        speak() {
            console.log("Лаја!");
        }
    }
    
    class Cat extends Animal {
        speak() {
            console.log("Мјау!");
        }
    }
    
    const animals = [new Dog(), new Cat(), new Animal()];
    
    animals.forEach(animal => {
        animal.speak(); // Позива одговарајућу методу за сваки објекат
    });
    
  • Абракција: издвајање суштинских карактеристика објекта и скривање несуштинских детаља. Олакшава разумевање и рад са сложеним системима.

Користи се у фронтенд развоју:

  • Модел компоненти (React, Vue, Angular): сваки компонент је објекат са сопственим стањем (податцима) и методама (поведина).
  • Рад са API-јем: објекти података које враћа сервер.
  • Креирање корисничких елемената интерфејса: објекти са дефинисаном логиком и изгледом.

Предности ООП:

  • Поновна употреба кода: преко наследјања и композиције.
  • Модуларност: код је подељен на независне објекте.
  • Флексибилност и скалабилност: лакше је модификовати и проширити систем.
  • Побољшана читљивост: код постаје структуриранији и разумљивији.

Недостаци ООП:

  • Може бити сложеније за почетнике.
  • Може довести до прекомерног кода при неправилном дизајну.
  • Не увек је погодан за све типове задатака.