Un type abstrait est un type encapsulé dans un module dont on cache la représentation concrète à l'utilisateur. Ainsi, il ne peut manipuler les données de ce types que via les fonctions exportées par le module, ce qui permet de garantir des invariants sur la structure de données (à condition que les fonctions la manipulant soient bien codées, cela va de soi ;-)
En OCaml ça peut donner cela, avec un fichier d'interface password.mli
typetvalcreate_pwd:string->t
et dans le fichier qui implémente l'interface password.ml tu as
typet=string(* le type t est un alias du type string mais l'utilisateur ne le sait pas *)letcreate_pwds=(* mon über code générant des mots de passe *)
et l'utilisateur ne pourra jamais manipuler les mots de passe comme des string.
Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.
[^] # Re: ouai
Posté par kantien . En réponse au journal Données vs Code. Évalué à 3.
Un type abstrait est un type encapsulé dans un module dont on cache la représentation concrète à l'utilisateur. Ainsi, il ne peut manipuler les données de ce types que via les fonctions exportées par le module, ce qui permet de garantir des invariants sur la structure de données (à condition que les fonctions la manipulant soient bien codées, cela va de soi ;-)
En OCaml ça peut donner cela, avec un fichier d'interface
password.mliet dans le fichier qui implémente l'interface
password.mltu aset l'utilisateur ne pourra jamais manipuler les mots de passe comme des
string.Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.