2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者向け】newとgetInstance()の違い

Last updated at Posted at 2021-12-20

##こんにちは。
いろいろなテキストやネットのコードを見ててインスタンスを生成するときに、newを使うときとgetInstance()を使うときが出てきて、扱いの違いがわからなかったので調べてみた。

##new演算子
あるクラスから実体のあるインスタンスオブジェクトを取得する

##getInstance()メソッド
あるクラスから実体のあるインスタンスオブジェクトを取得する

##(🔰)一緒に見える
(🔰)でもgetInstance()はSingletonパターンというものであることがわかった!

##getInstance()はSingletonパターン
###Singletonパターンとは
デザインパターンの一つ。
「あるクラスのインスタンスが常にたった1つしか存在していない」
という状態を実現したいときに使用される。

###Singletonのメリット
複数のインスタンスを作られると困る場面では
必ず一つしか作れないようにできる。

###Singletonのデメリット
どこのクラスからでも常に同じインスタンスを使用することになるため、
グローバル変数と同じような扱いで、どこからでも変更ができたり、
クラス同士の結合度が高くなってしまう。

###まとめ
Singletonパターンを採用しているクラスのインスタンスを取得するときには
getInstance()メソッドを使用しよう

##さいごに
new演算子は何個も中身の違うインスタンスを取得できるクラスに対して使用し、
getInstance()メソッドはたった一つのインスタンスしか取得できない
Singletonパターンのクラスに対して使用する。

javaAPIの中にもnewできないクラスがあるため、知っておくことが必要。
(ex..Calendarクラス)

2
4
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
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?