Aller au contenu

Gambas 3/Gambas3LeLangage/L'orienté objet avec Gambas/Encapsulation et interface

Un livre de Wikilivres.

Encapsulation et interface

[modifier | modifier le wikicode]

Encapsuler, 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

Veillez à toujours initialiser les variables déclarées. Ceci vous évitera bien des déboires !