Sobes.tech
Junior

Šta je apstrakcija u programiranju?

sobes.tech АИ

Одговор од АИ

Apstrakcija je mehanizam koji omogućava skrivanje detalja implementacije i pružanje opšte predstave o sistemu ili njegovim komponentama. Fokusira se na "šta" objekat radi, a ne na "kako" to radi.

U C#-u, apstrakcija se realizuje putem:

  • Apstraktnih klasa: Mogu sadržavati apstraktne metode (bez implementacije) i obične članove. Ne može se napraviti instanca apstraktne klase.
    // Apstraktna klasa sa apstraktnom metodom
    public abstract class Shape
    {
        public abstract double GetArea(); // Apstraktna metoda
        public string Name { get; set; }
    
        public void DisplayInfo() // Obična metoda
        {
            Console.WriteLine($"Oblik: {Name}");
        }
    }
    
  • Interfejsi: Definišu ugovor koji klasa mora da implementira. Sadrže samo deklaracije metoda, svojstava, događaja i indeksatora (do C# 8), ili mogu sadržavati podrazumevanu implementaciju (od C# 8).
    // Interfejs
    public interface IDrawable
    {
        void Draw(); // Metod bez implementacije
    }
    

Principi apstrakcije:

  • Enkapsulacija: Grupisanje podataka i metoda koji rade sa tim podacima u jedan blok. Promoviše skrivene unutrašnje strukture.
  • Nasleđivanje: Omogućava kreiranje novih klasa na osnovu postojećih, nasleđujući njihove osobine i metode, i dodajući ili redefinišući funkcionalnosti.

Primena apstrakcije:

  • Pojednostavljenje složenih sistema.
  • Povećanje fleksibilnosti koda.
  • Poboljšanje održavanja.
  • Kreiranje višekratno korišćenih komponenti.