Tu changes le pneu sur la roue, sans notifier la voiture
C'est son problème, pas le miens.
Comment la voiture le sais ?
Bah rien ne l'empêche de communiquer avec ses roues, par exemple s'abonner avec le patron observateur pour savoir qu'il y a un truc qui l'intéresse qui se passe sur ses roues.
Prend un autre exemple, je veux redimensionner le bouton contenu dans une fenêtre :
Tu crois que le container et la Window sont inccapables de se redimensionner automatiquement parcque je ne les ai pas notifié ?
t'aurais fais comment sans les get ?
app.resizeFirstChildOfContainerInMainWindow(10, 3) ?
Comment prévoir tous ces cas ?
L'objectif est d'exposer une API conviviale et intuitive, après c'est le problème de celui qui créé la lib de s'assurer que l'état de tous les objets du graphe qu'il expose reste cohérent.
Et vu qu'en C++, on renvoie généralement des références sur const, ben, ton objet accédé ne sera pas mis à jour.
Oué enfin si on pouvait éviter de prendre le C++ comme langage de référence quand on parle programmation objet ca serait pas mal :)
Tu remarqueras qu'il n'y a pas d'accésseurs, mais uniquement des méthodes métier.
Oui bien sûr, mais ça suppose que ta mercedes est la fonction de changement de pneu. Donc si c'est une bibliothèque qui n'a pas prévu le coup, t'es mort, tu retournes voir le constructeur. C'est peut-être l'effet recherché tu me diras. Si t'es garagiste, tu peux avoir envie de bricoler sans t'en tenir aux seuls cas imaginer par le fabriquant.
Je pense que les accesseurs ne sont pas une bonne idée. Évidement, c'est Java qui a popularisé la méthode.
Qu'on soit clair : l'objectif n'est pas de dire "mettez des accesseurs sur tous vos membres". L'objectif est d'utiliser des accesseurs quand il y a une interface intéressante à exposer.
[^] # Re: Chacun son style
Posté par TImaniac (site web personnel) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 2.
Prend un autre exemple, je veux redimensionner le bouton contenu dans une fenêtre :
app.getMainWindow().getContainer().getChild(1).resize(10,3)
Tu crois que le container et la Window sont inccapables de se redimensionner automatiquement parcque je ne les ai pas notifié ?
t'aurais fais comment sans les get ?
app.resizeFirstChildOfContainerInMainWindow(10, 3) ?
Comment prévoir tous ces cas ?
L'objectif est d'exposer une API conviviale et intuitive, après c'est le problème de celui qui créé la lib de s'assurer que l'état de tous les objets du graphe qu'il expose reste cohérent.
Oué enfin si on pouvait éviter de prendre le C++ comme langage de référence quand on parle programmation objet ca serait pas mal :)
Oui bien sûr, mais ça suppose que ta mercedes est la fonction de changement de pneu. Donc si c'est une bibliothèque qui n'a pas prévu le coup, t'es mort, tu retournes voir le constructeur. C'est peut-être l'effet recherché tu me diras. Si t'es garagiste, tu peux avoir envie de bricoler sans t'en tenir aux seuls cas imaginer par le fabriquant.
Qu'on soit clair : l'objectif n'est pas de dire "mettez des accesseurs sur tous vos membres". L'objectif est d'utiliser des accesseurs quand il y a une interface intéressante à exposer.