Developpez.com - C
X

Choisissez d'abord la catégorieensuite la rubrique :


Le pont

17/02/2003

Par Sébastien MERIC 

Classe dont on veut s'assurer qu'il n'existera qu'une et une seule instance dans l'espace et dans le temps d'un bout à l'autre du cycle de vie de l'application.



1. Synonymes
2. Synopsis
3. Présentation
4. Structure
5. Implémentation
6. Idée




Ce document présente le singleton, un design pattern très connu, et si facile à appréhender qu'il est souvant trop utiliser. Je présente celui-ci comme premier design patterns uniquement dans un but pédagogique, pour son aspect simple à comprendre.


1. Synonymes


Le nom du design pattern est essentiel. En effet, quand on utilise des normes afin d'être lisible par le plus grand nombre, afin d'être communicatif, il est essentiel de pouvoir nommé, l'outil que l'on utilise, et il est important que la terminologie soit partagée par tous. Voici donc pourquoi bien que le nom que je donne au pattern soit celui généralement partagé, il peut néanmoins apparaître d'autre nomination qu'il est bon d'exposer. Celui-ci n'en as pas réellement mais vous entendrez peut être parler de class à instance unique pour le designer.


2. Synopsis


Le singleton permet de s'assurer qu'une seule instance d'un objet donné sera instanciée pendant tout la durée de votre application. Une seule dans l'espace comme dans le temps, c'est à dire :

  • l'espace c'est à dire la mémoire, vous ètes certain de l'unicité de l'instance à tout instant
  • le temps car d'un appel à l'autre vous ètes aussi certain que l'instance n'a pas été refabriquée.


3. Présentation




4. Structure




5. Implémentation




6. Idée


getter d'une variable (lazy)



Copyright (c) 2003 Sébastien MERIC. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with the Front-Cover Texts being "Design patterns : Le singleton", and Back-Cover Texts being "Ce document à été écrit pour la communauté de développeurs francophones "www.developpez.com". A copy of the license is included in the section entitled "GNU Free Documentation License".
Contacter le responsable de la rubrique C