Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ δήλωσης ενός αντικειμένου ως ξεχωριστού δείγματος και της χρήσης ενός αντικειμένου-συνοδού μέσα σε μια κλάση;

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 είναι μια ξεχωριστή περίπτωση με το δικό της κράτος.