1. 싱글톤 패턴(Singleton Pattern)
- 객체를 생성했을 때, 같은 이름의 객체라면 오직 하나만 생성되는 패턴이다.
- 왜쓰는가? 메모리 절약을 위해 인스턴스가 필요할 때, 새로 생성하지 않고 똑같은 인스턴스를 가져온다.
- 보통 리소스를 많이 요구하는 객체일 때 자주 사용된다.
class Singleton {
private static Singleton instance;
private Singleton() { // 생성자
}
private static Singleton getInstance() {
if instance == NULL
instance = new Singleton();
return instance;
}
}
public class Client {
public static void main(String[] args) {
Singleton instance1 = Singleton.getInstance(); // 첫 인스턴스 생성
Singleton instance2 = Singleton.getInstance(); // 같은 인스턴스 호출
}
}
2. 싱글톤 패턴의 장단점
- 장점
- 메모리 사용의 효율성 : 동일한 객체를 재사용하므로 메모리 낭비를 방지한다.
- 글로벌 접근 가능 : 프로그램 어디서든 동일한 객체에 접근이 가능하다.
- 단점
- 의존성 관리 어려움 : 싱글톤이 너무 많은 역할을 가지면, 프로그램의 결합도가 높아진다.
- 테스트 어려움 : 싱글톤 객체가 전역 상태를 가지기 때문에 단위테스트시 mocking이 어렵다.
- mocking이란? 테스트하고자 하는 프로그램을 모조품을 만들어 사용
싱글톤 패턴은 코드의 활용성을 높여주는 패턴이다. 하지만 과도하게 사용하면 프로그램간의 결합도가 높아져서 유지보수가 힘들 수도 있다. 그러므로 적재적소에 활용하는 것이 중요할 것 같다.
'JAVA' 카테고리의 다른 글
[JAVA] 상속, 다형성, 추상 클래스 (2) | 2024.11.26 |
---|---|
[JAVA] JVM 메모리 사용 영역 (0) | 2024.11.26 |
[JAVA] 객체지향 언어란 무엇인가? - 객체, 인스턴스, 클래스, OOL특징 (2) | 2024.11.22 |
[JAVA] JAVA 기본 문법 - 참조 타입과 참조 변수 (4) | 2024.11.19 |
[JAVA] JAVA 기본 문법 - 변수 (3) | 2024.11.19 |