Gambas France BETA

Connexion

Pas de compte ? Incription

Static ou Dynamic

-5- Wiki, Création de Projets :


Choisir entre Static et Dynamic en POO


Partie 1


En Gambas 3, le choix entre l'utilisation de méthodes ou propriétés statiques et dynamiques dépend de vos besoins spécifiques. Voici une explication pour vous aider à décider :


Statique



Définition : Les méthodes ou propriétés statiques sont définies au moment de la compilation et sont liées à la classe elle-même, plutôt qu'à une instance de la classe.

Utilisation :

Vous pouvez appeler une méthode statique sans créer d'instance de la classe.
Elles sont utiles pour des fonctionnalités qui ne dépendent pas de l'état d'un objet spécifique.
1
2
3
PUBLIC Static Sub Main()
PRINT "Ceci est une méthode statique."
END

Quand l'utiliser :

Pour des fonctions utilitaires (par exemple, des calculs mathématiques).
Pour accéder à des données partagées entre toutes les instances d'une classe.

Dynamique



Définition : Les méthodes ou propriétés dynamiques sont liées à une instance spécifique d'une classe. Elles dépendent de l'état de l'objet.

Utilisation :

Vous devez créer une instance de la classe pour utiliser ces méthodes ou propriétés.
Elles sont utiles pour manipuler des données spécifiques à un objet.
1
2
3
PUBLIC SUB SayHello()
PRINT "Bonjour, je suis une méthode dynamique."
END

Quand l'utiliser :

Pour des fonctionnalités qui dépendent de l'état interne d'un objet.
Pour encapsuler des comportements spécifiques à une instance.

Quand choisir statique ou dynamique ?



Statique :

Si la méthode ou la propriété n'a pas besoin d'accéder à des données spécifiques à une instance.
Pour des fonctions globales ou des constantes.

Exemple : Une méthode pour calculer la racine carrée d'un nombre.

Dynamique :

Si la méthode ou la propriété dépend de l'état d'un objet.
Pour des comportements spécifiques à une instance.

Exemple : Une méthode pour afficher les détails d'un utilisateur.

Exemple concret en Gambas 3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
' Classe avec une méthode statique et une méthode dynamique
PUBLIC Class MyClass

' Méthode statique
PUBLIC Static Sub StaticMethod()
PRINT "Ceci est une méthode statique."
END

' Méthode dynamique
PUBLIC SUB DynamicMethod()
PRINT "Ceci est une méthode dynamique."
END

END

1
2
3
4
5
6
7
8
9
10
' Utilisation
PUBLIC SUB Main()
' Appel de la méthode statique sans instance
MyClass.StaticMethod()

' Appel de la méthode dynamique nécessite une instance
DIM obj AS MyClass
obj = NEW MyClass
obj.DynamicMethod()
END


Conclusion Partie 1



Utilisez statique pour des fonctionnalités indépendantes de l'état d'un objet.
Utilisez dynamique pour des fonctionnalités liées à l'état d'une instance spécifique.

En Gambas 3, ce choix dépend de la conception de votre application et de la manière dont vous structurez vos classes et objets.

Partie 2 :


En Gambas 3, les mots-clés Public et Static ont des significations différentes lorsqu'ils sont utilisés dans le contexte des modules. Voici une explication de chaque terme et de leur différence :
1. Public

Définition : Le mot-clé Public est utilisé pour déclarer une variable, une constante, une fonction ou une procédure qui est accessible depuis n'importe quel autre module ou classe dans le projet.

Portée : L'élément déclaré comme Public est global au niveau du projet, ce qui signifie qu'il peut être utilisé partout où le module est référencé.

Exemple :
1
2
3
4
PUBLIC CONST MaConstante AS INTEGER = 42
PUBLIC SUB MaProcedure()
PRINT "Ceci est une procédure publique."
END


2. Static

Définition : Le mot-clé Static est utilisé pour déclarer une variable ou une procédure qui conserve sa valeur entre les appels. Pour les variables, cela signifie que la valeur persiste entre les appels de la fonction ou de la procédure. Pour les procédures, cela signifie que la procédure ne peut pas accéder aux variables d'instance de la classe (elle est indépendante de l'instance).

Portée : L'élément déclaré comme Static a une portée limitée à la fonction ou à la procédure dans laquelle il est déclaré, mais sa valeur est conservée entre les appels.

Exemple :
1
2
3
4
5
PUBLIC SUB Compteur()
STATIC Compte AS INTEGER
Compte += 1
PRINT "Compteur : " & Compte
END


3. Static Public

Définition : Lorsque vous combinez Static et Public, vous déclarez une variable ou une procédure qui est à la fois publique (accessible partout dans le projet) et statique (sa valeur est conservée entre les appels ou elle est indépendante de l'instance).

Portée : L'élément est accessible globalement et conserve sa valeur entre les appels (pour les variables) ou est indépendant de l'instance (pour les procédures).

Exemple :
1
2
3
4
5
6
PUBLIC Static CompteGlobal AS INTEGER

PUBLIC Static Sub IncrementerCompte()
CompteGlobal += 1
PRINT "Compte global : " & CompteGlobal
END


Résumé des différences :

Public : Accessible partout dans le projet.

Static : Conserve sa valeur entre les appels (pour les variables) ou est indépendant de l'instance (pour les procédures).

Static Public : Combine les deux, c'est-à-dire qu'il est accessible partout et conserve sa valeur ou est indépendant de l'instance.

En résumé, Public concerne la visibilité, tandis que Static concerne la persistance de la valeur ou l'indépendance par rapport à l'instance. Static Public combine ces deux aspects.

Article entièrement "pondu" par DeepSeek qui connaît Gambas.

====================

Navigation :



<-- Liens du Wiki : <--
<-- Accueil du WIKI : <--
<-- Création de Projets <--

====================

Documentation :



====================