5 votes

Créer une classe pour un seul objet

Je pense qu'il s'agit d'une question assez simple, mais je n'arrive pas à trouver une bonne réponse en cherchant sur Google.

Lorsque je programme en C++ (en tant que débutant), j'aime souvent organiser mon code à l'aide de classes. Mais y a-t-il une raison de ne pas créer une classe si je n'ai besoin que d'un seul objet pour cette classe ? Lorsque j'ai appris la programmation orientée objet, j'ai compris que les classes sont un moyen de décrire certains objets. objets lorsque vous avez besoin nombreux d'entre eux.

Ma question est la suivante : est-il courant de créer une classe si un seul objet de cette classe est nécessaire ?

3voto

Même si vous n'avez besoin d'instancier un objet d'une classe qu'une seule fois, il est préférable de créer un fichier d'en-tête de classe avec ses propres variables et fonctions plutôt que de les définir dans main. La création d'une classe renforce le concept d'encapsulation, ce qui rend le code plus facilement maintenable (vous pouvez réutiliser la classe et/ou mettre à jour la fonctionnalité). En outre, la création d'une classe permet de conserver un format cohérent et de rendre le code plus facile à lire lorsque vous le relisez ou lorsque vous invitez quelqu'un à examiner votre programme.

2voto

Servé Laurijssen Points 1209

Oui... pour diverses raisons.

  1. Il se peut qu'à l'avenir vous ayez besoin de plusieurs instances, vous devrez alors moins réécrire.
  2. Vous encapsulez toujours toutes les variables nécessaires dans la classe.
  3. Recherchez les avantages du modèle singleton https://en.wikipedia.org/wiki/Singleton_pattern . La sécurité des threads est plus facile à mettre en œuvre pour l'une des raisons suivantes
  4. il n'est pas nécessaire de mettre en œuvre le modèle de verrouillage à double vérification https://en.wikipedia.org/wiki/Double-checked_locking

Le C++ offre une bonne façon d'initialiser les singletons

Singleton& instance()
{
     static Singleton s;
     return s;
}

Aucune condition n'est requise et la sécurité du fil est immédiate.

2voto

R Sahu Points 24027

Est-il courant de créer une classe si un seul objet de cette classe est nécessaire ?

Oui, il existe un modèle pour cela. Il s'appelle Le modèle Singleton .

Il existe également de nombreuses questions et réponses sur SO à ce sujet. Voir aussi https://stackoverflow.com/search?q=%5Bc%2B%2B%5D+is%3Aq+singleton .

0voto

Thomas Points 837

Oui, il existe également un modèle pour cela : le modèle singleton. https://en.wikipedia.org/wiki/Singleton_pattern

Avec ce modèle, vous ne pouvez créer qu'un seul objet, pas plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X