싱글톤 디자인패턴
한 클래스에서 하나의 객체만 만들고자 할 때.
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