Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Encapsulation et interface
Encapsulation et interface
modifierEncapsuler, c'est protéger la mécanique interne. Pour cela, nous créons un blindage. C'est comme l'enceinte fortifiée d'une ville : Personne ne passe sauf par les endroits que nous gérons : les portes.
L'interface c'est l'ensemble de ces accès contrôlés. On interagit avec l'objet par le biais de l'interface c'est à dire :
- les propriétés que nous avons vues
- les méthodes publiques que nous allons voir
- les événements que nous allons voir
Essayez de limiter le nombre de propriétés, de méthodes et d'événement à l'essentiel pour réaliser la tâche voulue !
Un exemple :
' Gambas class file
' Voiture
' les variables encapsulées ( internes )
Private $vitesse As Integer = 0
Private $nom As String = "default"
''''''''''''''''''''''''''''''''''''''''''''''''''
' la partie exposée ( l'interface ) ''''''''''
' composée des propriétés qui sont publiques
Property Read Vitesse As Integer
Property Read Roule As Boolean
Property Nom As String
' et des méthodes publiques
Public Sub Accelere()
If $vitesse < 100 Then $vitesse += 25
End
Public Sub Freine()
If $vitesse > 25 Then $vitesse -= 25
End ''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''
' définitions de fonctions internes nécessaires
' aux propriétés
Private Function Vitesse_Read() As Integer
Return $vitesse
End
Private Function Roule_Read() As Boolean
Return ($vitesse <> 0)
End
Private Function Nom_Read() As String
Return $nom
End
Private Sub Nom_Write(Value As String)
$nom = Value
End
Remarques
modifierVeillez à toujours initialiser les variables déclarées. Ceci vous évitera bien des déboires !