Sobes.tech
Junior

Τι είναι η αφαίρεση στον προγραμματισμό;

sobes.tech AI

Απάντηση από AI

Η αφαιρετικότητα είναι ένας μηχανισμός που επιτρέπει το κρύψιμο λεπτομερειών υλοποίησης και την παροχή μιας γενικής αναπαράστασης του συστήματος ή των συστατικών του. Εστιάζει στο "τι" κάνει ένα αντικείμενο, και όχι στο "πώς" το κάνει.

Στην C#, η αφαιρετικότητα υλοποιείται μέσω:

  • Αφηρημένων κλάσεων: Μπορούν να περιέχουν αφηρημένες μεθόδους (χωρίς υλοποίηση) και κανονικά μέλη. Δεν μπορεί να δημιουργηθεί ένα στιγμιότυπο μιας αφηρημένης κλάσης.
    // Αφηρημένη κλάση με αφηρημένη μέθοδο
    public abstract class Shape
    {
        public abstract double GetArea(); // Αφηρημένη μέθοδος
        public string Name { get; set; }
    
        public void DisplayInfo() // Κανονική μέθοδος
        {
            Console.WriteLine($"Σχήμα: {Name}");
        }
    }
    
  • Διεπαφές: Ορίζουν ένα συμβόλαιο που πρέπει να υλοποιήσει μια κλάση. Περιέχουν μόνο δηλώσεις μεθόδων, ιδιοτήτων, γεγονότων και δείκτες (μέχρι C# 8), ή μπορούν να περιέχουν προεπιλεγμένη υλοποίηση (από C# 8 και μετά).
    // Διεπαφή
    public interface IDrawable
    {
        void Draw(); // Μέθοδος χωρίς υλοποίηση
    }
    

Αρχές της αφαιρετικότητας:

  • Ενθυλάκωση: Συνένωση δεδομένων και μεθόδων που λειτουργούν με αυτά σε ένα ενιαίο μπλοκ. Προάγει το κρύψιμο της εσωτερικής δομής.
  • Κληρονομικότητα: Επιτρέπει τη δημιουργία νέων κλάσεων βασισμένων σε υπάρχουσες, κληρονομώντας τις ιδιότητες και τις μεθόδους τους, και προσθέτοντας ή επαναπροσδιορίζοντας λειτουργικότητα.

Εφαρμογή της αφαιρετικότητας:

  • Απλοποίηση πολύπλοκων συστημάτων.
  • Αύξηση της ευελιξίας του κώδικα.
  • Βελτίωση της συντηρησιμότητας.
  • Δημιουργία επαναχρησιμοποιήσιμων συστατικών.