• [^] # Re: Chacun son style

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 2.

    Tu viens d'exposer le gros problème des accesseurs bêtes sans réflexion. Tu changes le pneu sur la roue, sans notifier la voiture que tu as changé le pneu. Comment la voiture le sais ? Si le calcul de la trajectoire dépend de la qualité du pneu, ça peut être un problème si l'implémentation de la voiture n'utilise pas l'objet roue qui aura été retourné. C'est clairement un problème d'encapsulation.

    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.

    Moi je verrais plutôt un truc comme ça :

    Voiture mercedes = parking.sortirVoiture("111 AAA 111") ;
    try
    { mercedes.changeRoue(0, PneuMichelin(12, 10)) ;
    } catch(PneuIncompatible const &e) {
     // annuler la commande ?
    }
    parking.rangerVoiture(mercedes) ;
    

    Tu remarqueras qu'il n'y a pas d'accésseurs, mais uniquement des méthodes métier. Je pense que les accesseurs ne sont pas une bonne idée. Évidement, c'est Java qui a popularisé la méthode.