plus de contenu original supprimé pour faire référence à la question plus facile:Quel est le meilleur moyen de renvoyer plusieurs valeurs enum? (Java et C#)
J'ai une classe House
qui a une méthode House.buy(Person p)
, ce qui provoque la personne d'acheter la maison. Je veux savoir si c'est possible pour la personne d'acheter la maison, donc j'ai aussi une méthode House.tryBuy(Player p)
qui revient si la personne peut acheter la maison. J'ai un enum BuyState
avec des valeurs comme OK
, NotEnoughMoney
et AlreadyOwned
. Il y a quelques conditions différentes à satisfaire, et le client aimerait savoir lequel a échoué. Mais que faire si plusieurs conditions échouent? Je pourrais soit avoir une hiérarchie, comme si la maison est déjà détenue et personne n'a pas assez d'argent, retour BuyStates.AlreadyOwned
. Mais cela me permet seulement de dire une chose au client. Je pourrais avoir N conditions séparées et une énumération avec des valeurs N * N, comme ConditionA_AND_ConditionB_ANDConditionC
mais cela n'a aucun sens pour plusieurs raisons. Je sais qu'il y a des champs de bits, avec un peu pour chaque condition, mais ils semblent juste trop bas, ennuyeux à implémenter, et non scalable. Donc je besoin d'un moyen de retourner une liste de valeurs à partir d'un ENUM, que diriez-vous donc une classe comme ceci:
class C<type_of_enum> {
private List<type_of_enum> values;
//etc etc
}
Est-ce le « meilleur » conception possible?
(en gardant cette question sur Java et C# pour conserver des réponses valides)
Je dois juste dire ceci: la personne. (Maison) ferait tellement plus de sens. –