SSISO Community

시소당

JAVA 객체 생성시 new와 getInstance



보통  객체를  생성할  시  new를  사용해서  객체  생성을  하고  있습니다.

그니깐요..
public  class  A(){
.....
B  b  =  new  B();
b.~;
}

public  class  B(){

public  B(){

}
}

이런식으로  B  클래스를  생성하잖아요..

근데  getInstance를  사용해서  구현하시는  분들이  있더군요..

public  class  A(){
B  b  =  null;
b  =  B.getInstance();
}

public  class  B(){
protected  static  B  instance  =  null;

public  B(){
instance  =  this;
}

public  static  B  getInstance()  {
if  (instance  ==  null)  {
instance  =  new  B();
}
return  instance;
}
}

  

----------설명-------------

  

프로그래밍  디자인  패턴중  싱글턴패턴이  이러한  방법으로  쓰는  것인데

해당  클래스의  인스턴스를  여기저기  다른  클래스에서  새롭게  인스턴스를

만들지  못하고  하나의  인스턴스만  가지고  공유해서  쓰기  위해서

이러한  방법을  씁니다.

싱글턴  클래스로  쓰는  것들은  보통  생성자를  public  이  아닌  private  으로  선언해서

다른  클래스에서  이  클래스의  인스턴스를  new  를  통해서  생성하지  못하게  하고

항상  getInstance()  함수를  통해서  인스턴스를  갖도록  제한을  하죠.

싱글턴  패턴은  유용하게  많이  쓰이는  것이므로  알아두시면  편리합니다.

763 view

4.0 stars