Envoyé par
tchize_
Je ne suis pas d'accord avec toi adiguba.
Le choix de supprimer la surcharge aura un impact fort sur le langage. Chaque spécificité du langage implique des choix et des solutions différentes dans l'API.
Donc on ne développera pas de la même manière en Ceylon qu'en Java, tout comme on ne développe pas de la même manière en Java qu'en C++...
Dans ton exemple plutôt que de surcharger la méthode je pense qu'on utilisera plutôt une seule et unique version :
faitQuelqueChose(Model modele, Personne personne, Region region);
Qui, couplée avec des méthodes de conversion nous fournira des fonctionnalités similaires :
1 2 3 4 5 6 7 8 9 10
| Modele modele = ...
Personne personne = ...
Region region = ...
String name = ...
String regionName = ...
faitQuelqueChose(modele, personne, region);
faitQuelqueChose(modele, Personne.from(name), Region.from(regionName));
faitQuelqueChose(modele, personne, Region.from(regionName));
faitQuelqueChose(modele, Personne.from(name), region); |
Envoyé par
tchize_
Ensuite, les valeur par défaut, c'est bien gentil, mais parfois, la valeur par défaut n'est pas immédiate et nécessite un calcul. Certe on pourrait mettre null, suivi d'un if et dedans calculer. Ce qui ne ferait qu'aboutir à des méthodes plus longue et donc plus difficiles à suivre.
Ce n'est pas forcément plus court ni plus simple à lire d'avoir plusieurs méthodes qui s'appellent entre-elle...
Envoyé par
tchize_
Enfin, il arrive que des méthodes on le même nom car elles ont le même but et un résultat final similaire, mais elles doivent avoir un code différents car les paramètres supplémentaires influencent leur comportement et tout mettre dans une même méthode rendrait la maintenance compliquée et les performances problématiques.
Tu tombes alors dans mon troisième cas, où il faudra distinguer le nom des méthode...
Envoyé par
tchize_
Pour moi, avec une absence de surcharge, les pertes sont sèches. Le code sera pluq dur à lire, l'indépendances des méthodes surchargées n'est plus possible facilement.
Je n'ai pas dit que la suppression de la surcharge était un meilleur choix, mais simplement que c'était une alternative possible qui apportait certains avantages (et pas que des défauts)
a++
Partager