10

create()グアバの作成者がコンストラクターをプライベートとして定義し、オブジェクトを作成するための静的メソッドを定義することを好む理由を説明できますか?

4

1 に答える 1

20

効果的なJava項目1:コンストラクターではなく静的ファクトリメソッドを検討してください。

静的ファクトリメソッドの利点には、次のようなものがあります。

  • これらは、Java7より前のタイプパラメータを自動的に推測します。
  • これらを使用すると、継承パターンを制御できます。外部コードでコレクションタイプをサブクラス化せずに、Guava内でコレクションタイプをサブクラス化できます。
  • これらを使用すると、目的のタイプの任意のサブクラスを返すことができ、実装の詳細をより適切に隠すことができます。
于 2012-11-03T17:17:08.263 に答える