Structs et Classes

Comprenez les différences fondamentales entre ces deux types essentiels et quand utiliser l'un ou l'autre.

En Swift, il existe deux types de données pour définir et utiliser la programmation orientée objet : les Structs (Structures) et les Classes. Ces deux types vont avoir quelques points communs mais aussi quelques différences.

Points Communs

Les Structs et les Classes partagent les caractéristiques suivantes :

  • Des propriétés pour stocker des valeurs.
  • Des méthodes pour ajouter des fonctionnalités.
  • Des indices pour accéder aux valeurs en utilisant la syntaxe d'indices.
  • Des constructeurs pour mettre en place l’état initial de la classe ou de la structure.
  • Peuvent être étendus pour ajouter des fonctionnalités au-delà de leur implémentation de départ.
  • Se conforment au protocole.

Différences des Classes

Les classes vont avoir quelques caractéristiques supplémentaires :

  • L’héritage.
  • Le Type casting pour vérifier et interpréter le type de classe.
  • Le déinitialiseur, pour déconstruire un objet et libérer de l’espace.
  • Le comptage de référence autorise plus d’une référence pour la classe.

Quand Utiliser une Classe ou une Struct ?

Utilisez une classe si :

  • Vous avez besoin d'héritage pour réutiliser du code.
  • Vous souhaitez que plusieurs références pointent vers la même instance pour partager des données ou des états.
  • Vous avez besoin de fonctionnalités avancées comme le polymorphisme.

Utilisez une struct si :

  • Vous avez un type de données simple qui représente une valeur unique.
  • Vous souhaitez des instances immuables ou des copies indépendantes.
  • La structure de votre donnée est légère en termes de mémoire et n'a pas besoin d'héritage.