[JAVA] singleton 패턴

2021. 9. 15. 00:10프로그래밍/JAVA

728x90
반응형


클래스를 설계를 하고 객체를 생성해 만들어진 인스턴스는 여러 개가 생성될 수 있습니다.

하지만 프로그래밍을 하다 보면 생성된 객체가 단 하나만 존재해야 할 때가 있습니다.

그럴 때 사용하는 게 singleton 패턴인데요.

 

싱클톤 패턴은 한 번 생성 후 전역적으로 사용할 수 있기 때문에

다른 객체와 공유가 가능한 점,

한 번만 선언하기 때문에 메모리 소모가 덜 하다는 점이 장점입니다.

 


 

※ 간단한 활용 예

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package singleton;
 
public class Company {
 
    private static Company instance = new Company(); // 전체에서 유일하게 사용될 instance, null 이거나 값이 바뀔 수 없음
    
    private Company(){} // Company 컨스트럭터를 외부에서 호출하지 못하게 함
    
    public static Company getInstance() { // 객체를 생성하지 않고 메서드를 부르기 위해 static으로 선언
        if(instance == null)
            instance = new Company();
        return instance; // 외부에서 instance를 가져다 쓸 수 있음
    }
}
 
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package singleton;
 
public class CompanyTest {
 
    public static void main(String[] args) {
 
        Company c1 = Company.getInstance(); // instance메서드를 가져옴
        
        Company c2 = Company.getInstance();
        
        System.out.println(c1); // c1, c2는 같은 주소값을 가짐
        System.out.println(c2);
    }
 
}
 
cs
728x90
반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

[JAVA] 향상된 for문, 빠른 for문(enhanced for loop)  (1) 2021.09.17
[JAVA] ArrayList  (0) 2021.09.16
[JAVA] static 변수  (0) 2021.09.14
[JAVA] this란?  (0) 2021.09.09
[JAVA] 정보은닉(information hiding)  (0) 2021.09.08