Je suis supposé créer une classe qui devrait être un conteneur pour un intervalle de valeurs (comme en mathématiques). J'ai déjà décidé que je vais utiliser en interne un SortedSet
. Une des choses que je suis supposé implémenter est une méthode qui "obtient un ensemble ordonné avec tous les éléments dans l'intervalle".Problème déterminant le type de retour d'une méthode qui renvoie un SortedSet
class Interval {
private SortedSet sortedSet = new something();
...
<<method that should return an ordered set of values>>
}
Ma question réside dans ce qui devrait être à la fois le type de retour et le nom de la méthode. Plusieurs hypothèses se posent:
SortedSet getSortedElements();
J'utilise en interne unSortedSet
, donc je dois retourner ce type. Je devrais indiquer cette intention dans le nom de la méthode.SortedSet getElements();
Je utilise en interne unSortedSet
, mais cela ne sert à rien d'indiquer que dans le nom de la méthode (je ne vois pas de gros point dans celui-ci).Set getElements();
Je devrais essayer de toujours retourner le type le plus basique, donc je retourne un Set. Par le contrat et la définition de la méthode, les gens savent déjà que tous les éléments sont en ordre.Set getSortedElements();
Pour le type de retour de méthode, identique à ci-dessus. A propos du nom de la méthode, vous indiquez clairement ce que cette méthode va renvoyer: un ensemble d'éléments triés.
Je suis enclin à utiliser 4.
, mais les autres semblent également bien. Y a-t-il un gagnant clair? Pourquoi?
Je ne comprends pas votre question. SortedSet implémente déjà ce dont vous avez besoin avec 'public SortedSet sous-ensemble (E fromElement, E toElement)' –
Pyrolistical
Re. le nom de la méthode, "Elements" est trop générique. le nom de la méthode devrait être plus descriptif que " Elements" ... surtout si un jour vous avez besoin d'ajouter une autre collection à la classe, alors getElements devient ambigu –
inor