jeudi 23 avril 2015

Les getter c'est bien

J'ai longtemps pensé qu'un getter c'était bien. Je me disais que c'était mieux que de laisser la propriété publique, on contrôle vraiment la donnée qui est accédée depuis l'extérieur.

Bon sur ce point je n'ai pas vraiment tort, c'est mieux que d'avoir une propriété publique, mais cependant un getter ça reste mal

Avant j'aurais codé en POO ça :

Le problème c'est que si le barman change son type de retour pour la méthode getMajority, par exemple si il décide pour un autre besoin de retourner "18 years" au lieu de "18" mon code est cassé. Barman est donc trop couplé à User, une modification dans Barman doit être faite en prennant en compte l'utilisation qui est faite de Barman.

En east ça donne ça :

(le code n'est pas complet, il faudrait des interfaces pour un code plus propre et moins couplé)

Et là tout de suite on remarque que le code est bien plus long. Mais aussi que Barman peut être modifié comme on veut sans se préoccuper de User.

Et on voit aussi que le code est bien plus souple qu'avant, c'est le barman qui a la responsabilité de savoir si un utilisateur peut boire ou pas. Il peut demander l'âge, la taille, le sexe, ce qu'il veut. Et ensuite il choisira si l'utilisateur peut boire ou non. 

D'ailleurs l'utilisateur est libre d'écouter le barman ou pas et de boire de l'alcool qu'il ai l'autorisation ou pas. 

2 commentaires:

  1. Hello !

    Je suis tombé sur ta discussion dans jeuweb lors de mes recherches sur le East-ORiented-Programming et de manière plus large sur la programmation orientée objet "dans les règles de l'art" et j'aimerais savoir si il y a un irc, slack, ou autre canal de communication sur lequel on pourrait échanger ?

    Au plaisir o/
    Laurent

    RépondreSupprimer
  2. Salut,

    Tu peux venir sur le salon IRC ##east de Freenode

    RépondreSupprimer