1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Effective Java(第3版) 項目4 privateコンストラクタでインスタンス化不可能を強制する

1
Last updated at Posted at 2021-05-02

staticメソッド、staticフィールド(定数)だけからなるクラスを各場合、privateコンストラクタを作成し、
インスタンス化を不可能にする、という内容です。

記載内容

具体的なコンストラクタ定義

以下の様なコンストラクタを定義し、クラスの内部からも含めてインスタンス化が出来ないようにするべき。

// インスタンス化できないように、デフォルトコンストラクタを抑制する
private UtilityClass() {
    throw new AssertionError();
}

Collectionsの様なインタフェースに対するユーティリティクラス

Java8からは、インタフェースにstaticメソッドを定義可能になっているため、
Collectionインタフェースにメソッドを直接定義可能になっている。

考察

privateコンストラクタは、既に一般化されてテクニックとなっており、特に疑問点等は無いと思います。
Java8からは、インタフェースに関するファクトリメソッドは、インタフェース自体に定義するべきと思います。

Effective Java(第3版) 要約 目次

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?