J'ai peut manquer une sorte de point d'ici, si c'est le cas, veuillez inclure cette discussion comme une partie de ma question :).
C'est un raccourci vers le bas et de la renommée de l'échantillon d'un code de travail. Le GetTicks(..) est un échantillon unique, qui pourrait être n'importe quelle sorte de fonctionnalité (valeur de > 0 < 9
doit retourner un spécifique Enum un.donc).
public static class Something
{
public enum TypeOf : short
{
Minute = 2, Hour = 3, Day = 4, ........
}
public static long GetTicks(Something.TypeOf someEnum)
{
long ticks = 0;
switch (someEnum)
{
case Something.TypeOf.Minute:
ticks = TimeSpan.TicksPerMinute;
break;
case Something.TypeOf.Hour:
ticks = TimeSpan.TicksPerHour;
break;
....
}
return ticks;
}
}
// This class is called from anywhere in the system.
public static void SomeMethod(string dodo, object o, Something.TypeOf period)
{
// With the design above
long ticks = Something.GetTicks(period);
// Traditional, if there was a simple enum
if (period == Something.Day)
ticks = TimeSpan.FromDays(1).Ticks;
else if (period == Something.Hour)
ticks = TimeSpan.FromHours(1).Ticks;
}
L'idée est de collecter des fonctionnalités qui concerne un enum, près possible de la enum lui-même. L'enum est la raison de la fonction. Aussi je trouve qu'il est facile et naturel de chercher une telle fonctionnalité près de l'enum. Aussi, il est facile de les modifier ou de les étendre.
L'inconvénient que j'ai, c'est que j'ai de l'état de l'enum plus explicite Something.TypeOf
. La conception peut paraître non-standard? et s'appliquerait si l'enum est pour un usage interne dans la classe.
Comment aimeriez-vous faire plus joli? J'ai essayé de résumé, de la base de l'héritage, partielle. Aucun d'entre eux semblent s'appliquer.