LoginSignup
0
0

More than 3 years have passed since last update.

【Effective Javaを読む】 第2章 項目4 『privateのコンストラクタでインスタンス化不可能を強制する』

Last updated at Posted at 2020-07-28

privateのコンストラクタでインスタンス化不可能を強制する

ユーティリティクラス(staticのメソッドとstaticのフィールドからなるクラス)はインスタンス化されるようには設計されない。にもかかわらずインスタン化できてしまうものをよく見るので、privateのコンストラクタを使って絶対インスタンス化できないようにしましょう、ってお話。

用語集

デフォルトコンストラクタ

コンストラクタを1つも定義していない場合、自動的にデフォルトコンストラクタと呼ばれるコンストラクタが作成される。

サンプルコード

明示的にprivateなコンストラクタを記述することで、外部からのアクセスを不可能にし、デフォルトコンストラクタの生成も抑止される。
AssertionErrorは厳密には必要ではないけれど、保険として入れている。


//インスタンス化できないユーティリティクラス
public class UtilityClass {
    //インスタンス化できないようにするためにデフォルトコンストラクタを抑制する
    private UtilityClass() {
        throw new AssertionError();
    }
     //残りは省略
}

続く

【Effective Javaを読む】 第2章 項目5 『不必要なオブジェクトの生成を避ける』
https://qiita.com/Natsukii/items/ec64efddce85ffd59fa8

0
0
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
0
0