본문 바로가기

프로그래밍/JAVA

Singleton Test

싱글톤 디자인패턴

한 클래스에서 하나의 객체만 만들고자 할 때.

1. 생성자를 private로 만든다.
2. 내부 static 변수로 생성자를 이용해서 객체를 하나 생성한다.
3. public으로 생성된 객체 하나(2번에서 만든 static변수)를 리턴해주는 메소드를 만든다.


public class SingletonTest{
 public static void main(String[] args){
  Company c = Company.getCompany();
  Company c1= Company.getCompany();
 // Company c2 = new Company();                // 생성자가 private 이므로 외부에서 객체 생성 불가
  System.out.println(c);
  System.out.println(c1);                               // c와 c1은 동일 객체. 동일한 해쉬코드  
 }
}

class Company{
    private String str;
    private static Company obj = new Company();
    private Company(){
        str = "company";
        System.out.prinln("생성자 : " + str);
    }

    public static Company getCompany(){
        return obj;
    }
}

결과값
생성자 : company                           
Company@107077e                                        
Company@107077e