Μπορείτε να εξηγήσετε την αρχή της ενιαίας (πάπιας) τυποποίησης και πώς εφαρμόζεται στον προγραμματισμό;
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, διαφορετικά θα προκύψει σφάλμα κατά την εκτέλεση.