Sobes.tech
Junior — Middle

Μπορείτε να εξηγήσετε την αρχή της ενιαίας (πάπιας) τυποποίησης και πώς εφαρμόζεται στον προγραμματισμό;

sobes.tech AI

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

Ο τύπος πάπιας (duck typing) είναι μια έννοια στον προγραμματισμό όπου ο τύπος ενός αντικειμένου καθορίζεται όχι από την κλάση ή την κληρονομικότητά του, αλλά από την παρουσία ορισμένων μεθόδων και ιδιοτήτων.

Η φράση "Αν κάτι φαίνεται σαν πάπια, κολυμπάει σαν πάπια και κουάκερ σαν πάπια, τότε είναι μια πάπια" αντικατοπτρίζει την ουσία: δεν έχει σημασία ο τύπος του αντικειμένου, αλλά η συμπεριφορά του.

Στη C# δεν είναι μηχανισμός ενσωματωμένος όπως σε δυναμικές γλώσσες, αλλά μπορεί να μιμηθεί μέσω διεπαφών ή δυναμικού τύπου (dynamic). Για παράδειγμα, αν ένα αντικείμενο υλοποιεί τις απαραίτητες μεθόδους, μπορεί να χρησιμοποιηθεί χωρίς αυστηρό έλεγχο τύπου.

Παράδειγμα με dynamic:

void MakeItQuack(dynamic duck) {
    duck.Quack();
}

class Duck {
    public void Quack() {
        Console.WriteLine("Κουάκ!");
    }
}

MakeItQuack(new Duck());

Εδώ, είναι σημαντικό το αντικείμενο που περνάει να έχει τη μέθοδο Quack, διαφορετικά θα προκύψει σφάλμα κατά την εκτέλεση.