디자인 패턴
프로그램 설계시 발생했던 문제들을 객체 간 상호관계를 이용하여 해결할 수 있도록 하나의 규약으로 만들어 놓은 형태
Signleton Pattern
- 싱글톤 패턴 : 하나의 클래스에 오직 하나의 인스턴스만 지니는 것. 보통 db연결 모듈에 많이 사용된다.
package designpattern.singleton;
class Singleton {
private static class singleInstanceHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return singleInstanceHolder.INSTANCE;
}
}
public class Main {
public static void main(String[] args) {
Singleton a = Singleton.getInstance();
Singleton b = Singleton.getInstance();
System.out.println(a.hashCode());
System.out.println(b.hashCode());
if (a == b) {
System.out.println(true);
}
}
}
구현
- private과 final 키워드를 통해 외부에서 해당 인스턴스를 함부로 접근하여 수정할 수 없게 해야함.
- static(정적) 필드를 사용하여 모든 객체가 공유하는 필드를 만들어야함.
static은 한번만 생성되고, 별도의 메모리 공간에 저장된다.
싱글톤 패턴의 장점
1. 메모리 측면에서 효율적임. 단 한번의 new() 연산자를 통해 고정된 메모리 영역만 사용하므로 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있음.
2. 하나의 인스턴스를 통해 다른 클래스들 간의 데이터 공유가 쉬움.
싱글톤 패턴의 단점
1. 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴으로, 각 테스트마다 독립적인 인스턴스를 생성하기 어려움
728x90
반응형
'Design Pattern' 카테고리의 다른 글
Iterator Pattern (0) | 2023.06.18 |
---|---|
프록시 패턴 (0) | 2023.06.18 |
Observer Pattern (0) | 2023.06.17 |
전략 패턴 - Strategy Pattern (0) | 2023.06.11 |
Factory Pattern (0) | 2023.06.11 |