I'm trying to implement a Plurk API biding for Scala, but I have a design choice to made.
For example, the gender attribute of a Plurk user could be one of "male", "female", "other".
sealed trait Gender
object Male extends Gender
object Female extends Gender
object Others extends Gender
The question is should I prefer sealed class/object like above code example, over Enumeration to represent enumeration types?
Because I find that I rarely come across Enumeration when I use other Scala library, and lots of tutorial of Actor use sealed class/object to represent messages for Actor.
So does this means that in Scala, sealed class is a better/conventional choice over Enumeration?
If you don't need to iterate over your objects of Gender or need methods like next
and previous
, classes and objects is the right solution.
If you need the features of the "classes and objects" and of "scala.Enumeration" this and this question could be of interest to you.
Using Enumeration
is also quite a bit cheaper in terms of class count. In the Gender
example that does not matter, but it might start to matter if you want to model processor instructions by an enumeration with 100+ elements.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With