Ποια είναι η διαφορά μεταξύ δήλωσης ενός αντικειμένου ως ξεχωριστού δείγματος και της χρήσης ενός αντικειμένου-συνοδού μέσα σε μια κλάση;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Swift, το αντικείμενο συνοδού υλοποιείται μέσω της λέξης-κλειδιού static ή class μέσα στην κλάση, επιτρέποντας τη δημιουργία ιδιοτήτων και μεθόδων που σχετίζονται με την ίδια την κλάση, και όχι με τις περιπτώσεις της. Αυτό είναι ανάλογο με το μοτίβο "Singleton" ή τα στατικά μέλη σε άλλες γλώσσες.
-
Ξεχωριστή περίπτωση αντικειμένου — είναι ένα συγκεκριμένο αντικείμενο που δημιουργείται μέσω της αρχικοποίησης της κλάσης. Κάθε περίπτωση έχει το δικό της κράτος και συμπεριφορά.
-
Αντικείμενο συνοδού (στατικό αντικείμενο) — είναι μέρος της κλάσης που είναι κοινό σε όλες τις περιπτώσεις, και δεν απαιτεί τη δημιουργία ενός αντικειμένου για πρόσβαση.
Παράδειγμα:
class MyClass {
static let companion = MyClass()
var value: Int = 0
}
// Χρήση
MyClass.companion.value = 10
let instance = MyClass()
instance.value = 5
Εδώ, το companion είναι ένα στατικό αντικείμενο συνοδού, προσβάσιμο χωρίς τη δημιουργία μιας περίπτωσης της κλάσης, και το instance είναι μια ξεχωριστή περίπτωση με το δικό της κράτος.