J’ai eu quelques commentaires à propos de mon dernier billet dans lequel je dis qu’il n’est pas prudent, lorsqu’on fait de la programmation orientée objet, de se baser à l’intérieur d’une méthode de classe sur une valeur retournée par ce qui est communément appelé un « getter » pour prendre une décision.
Étant donné que je suis un peu masochiste, j’ai pris le temps de coder quelques lignes pour démontrer qu’il s’agit d’une mauvaise pratique.
Étant amateur de (bonne) bière, je me suis permis de choisir comme cas d’usage la réalisation d’une commande par un client dans un bar à bière, de la demande au paiement.
De plus, afin de limiter la portée de l’exemple, j’ai fait quelques concessions sur la réalisation technique.
Ainsi, mon code ne contient pas d’interface, alors que dans un cas réel, afin d’augmenter le niveau d’abstraction, il faudrait y recourir afin de pouvoir par exemple remplacer le barman par une pompe à bière automatique, ou bien le client par un Autrichien sachant parler le français et payer en euro.
De plus, je n’ai pas utilisé d’injection de dépendance pour la création de mes objets et au moins une méthode assure une méthode qui ne devrait pas être de la responsabilité de la classe, mais j'ai choisi dans ce cas la facilité, car la méthode concernée est périphérique et n'apporte rien au propos.