1. ホーム
  2. oop

[解決済み] Scalaでコンパニオン・オブジェクトを持つ根拠は何ですか?

2022-10-03 18:31:49

質問

クラスのコンパニオンオブジェクト(シングルトン)が必要な場合があるのでしょうか?なぜ、あるクラス、例えば Foo というクラスを作り、そのコンパニオン・オブジェクトも作りたいのでしょうか?

どのように解決するのですか?

コンパニオン・オブジェクトは基本的に、"static-like" メソッドを置く場所を提供します。さらに、コンパニオンオブジェクト、またはコンパニオンモジュールは、プライベートなものも含め、クラスのメンバに完全にアクセスすることができます。

コンパニオンオブジェクトはファクトリーメソッドのようなものをカプセル化するのに適しています。持つ必要がない代わりに、例えば FooFooFactory をどこでも使えるようにすると、コンパニオンオブジェクトを持つクラスがファクトリーの責任を引き受けるようになります。