• [^] # Re: ouai

    Posté par . En réponse au journal Données vs Code. Évalué à 3.

    En quoi est-ce que c'est un type abstrait ?

    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

    type t
    val create_pwd : string -> t

    et dans le fichier qui implémente l'interface password.ml tu as

    type t = string (* le type t est un alias du type string mais l'utilisateur ne le sait pas *)
    let create_pwd s = (* 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.