• [^] # Re: Rien de transcendant dirait-on

    Posté par . En réponse au journal Noop : encore un nouveau langage ou bien nouvelle génération de langage. Évalué à 0.

    certes.
    Apres, forcer le constructeur a prendre les arguments, ca pose des problemes pratique:
    - Quand ton objet a un gros nombre de membres obligatoires, v'la la gueule du constructeur... 15 parametres au constructeur, c'est pas humain.
    - Ca rend le code absolument illisible. Surtout quand nombre des membres ont le meme type (genre string). T'as une probabilite de te planter quand tu construit manuellement l'objet qui est tres proche de 1. Et pour la relecture, bon courage.
    - Tu rajoutes un attribut, t'as *tout* ton code qui pete.
    - Ca fait exploser le code du constructeur. Tu te tapes en enorme if(param1 == null || param2 == null ....) throw new IllegalArgumentException("Param1, param2 ... must not be null").
    Et si en plus tu veux une exception au message pertinent, ben ton constructeur vient de prendre 56 (15 * 4) lignes pour rien.

    Et en pratique, des classes avec 15 membres obligatoires (ou plus meme...), ca se voit regulierement.

    Ca c'est pour les problemes les plus simples.
    Je sais pas pour les autres langages, mais le concept de bean en java est quand meme largement repandu, parce qu'il apporte beaucoup de souplesse et de genericite.
    C'est plus simple de construire un objet vide et de lui setter ses properties a la ligne d'apres dans le code que de devoir deviner quel parametre va ou en fonction de son nom.

    Alors on fait une entorse a la theorie, parce que c'est ingerable sinon.