Рекомендуемый стиль кода: case-объект Foo или объект Foo расширяет Serializable? - PullRequest
3 голосов
/ 25 мая 2011

Если я хочу сериализованный синглтон, я должен предпочесть

case object Foo

или

object Foo extends Serializable

?

1 Ответ

2 голосов
/ 25 мая 2011

Я думаю, это зависит от того, как вы планируете использовать этот объект. Кейс-объекты обычно используются с кейс-классами для представления некоторого начального или конечного объекта в алгебраическом типе данных, например, Nil или None. Обычные объекты обычно являются компаньонами для классов для хранения статических методов, таких как singleton и фабричные методы.

Если вы планируете использовать этот объект с другими классами, сериализовать его и, возможно, использовать его при сопоставлении с образцом, определение его как объекта case мне кажется более естественным.

...