Smart constructor
Empêcher les états invalides
🔗 Designing with types: Making illegal states unrepresentable, F♯ for fun and profit, Jan 2013
Avoir un design qui empêche d'avoir des états invalides
Encapsuler état (∑ primitives) dans un objet
Smart constructor sert à garantir un état initial valide
Valide les données en entrée
Si Ko, renvoie "rien" (
Option) ou l'erreur (Result)Si Ok, renvoie l'objet créé wrappé dans l'
Option/ leResult
Encapsuler état dans un type
👉 Ajouter du sens à une primitive
👉 Faire émerger un concept, le réifier
Mot clé private
privateCache contenu de l'objet
Champs et constructeur ne sont plus visibles de l'extérieur
Smart constructeur défini dans module compagnon 👍 ou méthode statique
Single-case union 👌
Type X = private X of a: 'a...
🔗 Designing with types: Single case union types sur F♯ for fun and profit, Jan 2013
Record 👍
Type X = private { a: 'a... }
🔗 SCU: really? de Paul Blasucci, Mai 2021
Implémentations
Exemple 1
Smart constructeur :
Fonction
tryCreatedans module compagnonRenvoie une
Option
Exemple 2
Smart constructeur :
Méthode statique
OfRenvoie
Resultavec erreur de typestring
Mis à jour
Ce contenu vous a-t-il été utile ?