Подтвердить что ты не робот

Должен ли я предпочитать закрытый класс или перечисление в Scala?

Я пытаюсь реализовать API Plurk для участия в Scala, но у меня есть выбор дизайна.

Например, гендерный атрибут пользователя Plurk может быть одним из "мужских", "женских", "других".

sealed trait Gender
object Male extends Gender
object Female extends Gender
object Others extends Gender

Вопрос в том, должен ли я использовать закрытый класс/объект, например, над примером кода, над Enumeration для представления типов перечислений?

Потому что я нахожу, что редко встречаю Enumeration, когда я использую другую библиотеку Scala, и много учебников Actor используют закрытый класс/объект для представления сообщений для Actor.

Значит ли это, что в Scala закрытый класс является лучшим/обычным выбором для перечисления?

4b9b3361

Ответ 1

Если вам не нужно выполнять итерацию по вашим объектам "Пол" или нужны такие методы, как next и previous, правильные решения - это классы и объекты.

Если вам нужны функции "классов и объектов" и "scala.Eneration" this и этот вопрос может вас заинтересовать.

Ответ 2

Использование Enumeration также довольно немного дешевле с точки зрения количества классов. В примере Gender это не имеет значения, но может возникнуть вопрос, хотите ли вы моделировать инструкции процессора путем перечисления со 100 + элементами.