Κατασκευαστές είναι μια σημαντική έννοια στον αντικειμενοστραφή προγραμματισμό, ειδικότερα στην C#. Σας επιτρέπουν να αρχικοποιήσετε αντικείμενα μιας κλάσης με συγκεκριμένα χαρακτηριστικά. Σε αυτόν τον οδηγό θα μάθετε πώς να χρησιμοποιείτε πολλούς κατασκευαστές σε μια κλάση αποτελεσματικά, προκειμένου να αυξήσετε την ευελιξία και τη φιλικότητα των εφαρμογών σας.
Κύριες επισημάνσεις
- Μπορείτε να ορίσετε πολλούς κατασκευαστές σε μια κλάση για να προσφέρετε διαφορετικές επιλογές αρχικοποίησης.
- Υπάρχει ο παραμετροποιημένος κατασκευαστής και ο προεπιλεγμένος κατασκευαστής.
- Οι παράμετροι μπορούν να έχουν προεπιλεγμένες τιμές, οι οποίες χρησιμοποιούνται όταν δεν δηλώνονται ειδικές τιμές.
Οδηγός βήμα προς βήμα
Ας ξεκινήσουμε δημιουργώντας μια απλή κλάση. Χρησιμοποιήστε μια κλάση που αναπαριστά αυτοκίνητα. Πρώτα θα υλοποιήσετε έναν παραμετροποιημένο κατασκευαστή, ο οποίος σας επιτρέπει να επισημαίνετε τον κατασκευαστή και τον τύπο του οχήματος όταν δημιουργείτε ένα αυτοκίνητο. Για αυτά τα παραδείγματα, υποθέτουμε ότι τα οχήματα που δημιουργούμε είναι μεταχειρισμένα.

Εκτός από τον παραμετροποιημένο κατασκευαστή, προσθέτουμε έναν προεπιλεγμένο κατασκευαστή. Αυτός καλείται όταν δεν μεταβιβάζονται παράμετροι. Πρόκειται για έναν κατασκευαστή χωρίς παραμέτρους, ο οποίος θέτει τις προεπιλεγμένες τιμές για τα χαρακτηριστικά του αντικειμένου, όπως τον κατασκευαστή και τον τύπο του οχήματος.
Για να δηλώσετε τον προεπιλεγμένο κατασκευαστή, τον κάνετε public και τον ονομάζετε ακριβώς όπως η κλάση. Για παράδειγμα, ονομάζετε τον κατασκευαστή για την κλάση Auto απλά public Auto. Σε αυτή την περίπτωση, θέτουμε την προεπιλεγμένη τιμή για τον κατασκευαστή σε "Opel Automobile GmbH" και τον τύπο του οχήματος σε "Corsa".
Τώρα, αφού έχει αναπτυχθεί ο προεπιλεγμένος κατασκευαστής, θα δείξετε πώς να τον χρησιμοποιείτε. Μπορείτε να δημιουργήσετε ένα νέο αυτοκίνητο απλά καλώντας τον προεπιλεγμένο κατασκευαστή χωρίς να δηλώσετε παραμέτρους. Μόλις το αυτοκίνητο έχει δημιουργηθεί, εκτυπώνει τα χαρακτηριστικά του αυτοκινήτου για να ελέγξει αν οι προεπιλεγμένες τιμές έχουν ρυθμιστεί σωστά.

Τώρα, επεκτείνουμε την κλάση Auto με δύο επιπλέον χαρακτηριστικά: χρώμα και ηλικία του οχήματος. Αυτές οι πληροφορίες είναι σημαντικές, ειδικά για μεταχειρισμένα αυτοκίνητα. Ωστόσο, κατά την καταχώριση από τον χρήστη, μπορεί να είναι ότι ο χρήστης δεν παρέχει όλα τα δεδομένα. Επομένως, δημιουργούμε έναν νέο κατασκευαστή που δέχεται αυτές πρόσθετες παραμέτρους - δηλαδή τύπο οχήματος, χρώμα και ηλικία.

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

Η επαλήθευση των χαρακτηριστικών πραγματοποιείται μέσω μιας if-δήλωσης, προκειμένου να διασφαλιστεί ότι μόνο οι μη-null τιμές θα εκτυπωθούν. Έτσι μπορείτε να λάβετε συγκεκριμένες πληροφορίες σχετικά με τα οχήματα, ακόμα και αν λείπουν ορισμένα δεδομένα.

Τώρα είναι η ώρα να δοκιμάσετε αν όλα λειτουργούν σωστά. Δημιουργήστε ένα νέο αυτοκίνητο, ονομάστε το "νέο αυτοκίνητο 2" και δηλώστε τον τύπο του οχήματος, το χρώμα και την ηλικία. Μετά τη δημιουργία του οχήματος, καλέστε την έξοδο για να ελέγξετε την αποδοτικότητα του νέου σας κατασκευαστή.
Με αυτές τις δοκιμές μπορείτε να δείτε πώς λειτουργούν οι διάφοροι κατασκευαστές στην κλάση Auto και ποιες πληροφορίες εκτυπώνονται. Ο προεπιλεγμένος κατασκευαστής χρησιμοποιείται όταν δεν μεταβιβάζονται παράμετροι, ενώ οι εναλλακτικοί κατασκευαστές δέχονται συγκεκριμένες λεπτομερείς πληροφορίες.

Κλείνοντας, ως μικρή άσκηση, δημιουργήστε μια νέα ιδιότητα, όπως για παράδειγμα «Αριθμός κυκλοφορίας», και προσθέστε έναν νέο κατασκευαστή που δέχεται όλες τις σχετικές πληροφορίες - τύπο οχήματος, αριθμό κυκλοφορίας, χρώμα και ηλικία. Προσαρμόστε επίσης την έξοδο, προσθέτοντας μια if-else δήλωση, για να διασφαλίσετε ότι οι πληροφορίες εμφανίζονται σωστά.

Σύνοψη – Αποτελεσματική χρήση πολλαπλών κατασκευαστών
Έχετε τώρα μάθει πώς να εφαρμόζετε πολλούς κατασκευαστές σε μια κλάση C# και να τους αναθέτετε διάφορες παραμέτρους. Η ικανότητα να χρησιμοποιείτε πολλούς κατασκευαστές αυξάνει την ευελιξία του κώδικα σας και τον καθιστά πιο προσαρμόσιμο σε διάφορες περιπτώσεις χρήσης.
Συχνές ερωτήσεις
Πόσοι κατασκευαστές μπορώ να έχω σε μια κλάση;Δεν υπάρχει σταθερό ανώτατο όριο, μπορείτε να ορίσετε όσους κατασκευαστές χρειάζεστε, εφόσον διαφοροποιούνται στις παραμέτρους τους.
Ποια είναι η διαφορά μεταξύ προεπιλεγμένου κατασκευαστή και παραμετροποιημένου κατασκευαστή;Ο προεπιλεγμένος κατασκευαστής δεν έχει παραμέτρους και αρχικοποιεί το αντικείμενο με προεπιλεγμένες τιμές, ενώ ο παραμετροποιημένος κατασκευαστής αποδέχεται παραμέτρους για να καθορίσει συγκεκριμένες τιμές κατά τη δημιουργία του αντικειμένου.
Μπορώ να υπερφορτώσω κατασκευαστές;Ναι, μπορείτε να υπερφορτώσετε κατασκευαστές ορίζοντας πολλούς κατασκευαστές στην ίδια κλάση με διαφορετικές λίστες παραμέτρων.
Τι συμβαίνει αν δεν ορίσω κανέναν κατασκευαστή;Εάν δεν είναι ορισμένος κανένας κατασκευαστής, ο μεταγλωττιστής παρέχει έναν προεπιλεγμένο κατασκευαστή που δεν εκτελεί καμία ενέργεια, αλλά αρχικοποιεί το αντικείμενο.