「引数を取らないメソッドに対して、空の括弧(empty paren)をつけて定義するか?それともつけずに定義するか?」は、副作用があるかどうかで決めるのがScalaの流儀であります。これと同様に、クラスのコンストラクタも引数を取らないときには括弧をつけるパターンとつけないパターン、いずれの方法でも定義することができます。そうなると果たしてどうやって括弧をつけるかどうか判断すべきなのか?というのが今回のテーマです。
じっさい公式のスタイルガイドにはそのような項目がないので、どうするかは各人に任されているようなのですが、StackOverflowにはドンピシャな質問があります。
Scala style for empty class parameter lists
ベストアンサーの方の回答を要約すると
-
Javaでクラス(括弧あり)とインターフェースを見分けるために使っているように、Scalaでもクラス(空の括弧あり)とトレイトで使い分けてもいい
-
メソッドと同様に、副作用があるならつける、ないならつけないということもできる
- でもコンストラクタでは副作用が発生しないのが理想だよな…
-
状態を持つオブジェクト、ミュータブルなオブジェクト(空の括弧つける)とイミュータブルなオブジェクト(括弧つけない)で使い分けるということもできる
- でもケースクラスはイミュータブルであるべきだが、空の括弧をつけずに定義するのは非推奨だし…
-
個人的にはない方が見やすいから付けてないよ
ということです。
個人的にも、わざわざ付ける必要はないと思っています。