1. Singleton Pattern
싱글톤 패턴이란 어플리케이션이 시작될때 최초 한번 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴이다.
변화되여서는 안되는 설정값등을 위해 주로 사용되며 여러 객체에서 접근이 가능하므로 동시성 문제를 잘 해결해야만 한다.
// 일반적인 class문
public class Factory {
private boolean isOperating = false;
public Factory() {};
public void operationFactory() {
isOperating = true;
System.out.println("start Opertion!");
}
public void shutDownFactory() {
isOperating = false;
System.out.println("ShutDown Operation");
}
}
싱글톤이 적용되지 않는 일반적인 class 문이다.
//싱글톤
public class SingletonFactory {
private static SingletonFactory singletonFactory = new SingletonFactory();
private static boolean isOperating = false;
private SingletonFactory() {};
public static SingletonFactory getInstance() {
return singletonFactory;
}
public static void operationFactory() {
isOperating = true;
System.out.println("start Opertion!");
}
public static void shutDownFactory() {
isOperating = false;
System.out.println("ShutDown Operation");
}
}
싱글톤이 적용된 클래스이다.
위와 같이 내부적으로 static new 키워드를 통해 최초 한번만 객체를 생성하고 이후에는 getInstance()를 통해 호출하여 사용하는 형식이다.
이러한 싱글톤을 사용하였을때의 장단점은 다음과 같다.
싱글톤 패턴의 장점
1. 최초 1회 생성이므로 메모리 낭비 방지
2. 인스턴스가 절대적으로 1개만 존재하고, 전역이기 때문에 다른 인스턴스들에 의한 데이터 공유
싱글턴 패턴의 단점
1. 싱글턴의 인스턴스가 너무 많이 일을 하게 되면, 다른 인스턴스들의 의존도가 높아질수 있다. 이는 곧 "개방 - 페쇄" 정책의 위반으로 이어진다.
2. 위와 같은 영향으로 유지보수가 어려워지고 유지보수 비용이 높아질수 있다.
3. 전역으로 하나만 존재하므로 동기화처리를 필수적으로 해야 한다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
Java Tomcat OutOfMemoryError : PermGen space (0) | 2022.05.02 |
---|---|
JVM 메모리 구조 (0) | 2022.05.02 |
static 변수와 함수 (0) | 2022.03.17 |
Char를 Int로 변환하기 (0) | 2022.02.19 |
자바 공백문자 채우기 (0) | 2022.02.17 |