import java.util.Date;
public class BigLoad {
public static void main(String[] args) {
Date d1 = new Date();
//싱글톤을 적용하면 로딩 한번만 실행(5초). 몇개를 만들어도 5초
BigLoad.getInstance();
BigLoad.getInstance();
BigLoad.getInstance();
BigLoad.getInstance();
BigLoad.getInstance();
//그때마다 객체를 만들어서 오래 걸림 (30초)
new BigLoad();
new BigLoad();
new BigLoad();
new BigLoad();
new BigLoad();
new BigLoad();
Date d2 = new Date();
System.out.println(d2.getTime()-d1.getTime());
}
private static BigLoad instance;
BigLoad() {
System.out.print("로딩중");
for(int i=0;i<10;i++)
{
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.print(".");
}
}
public static BigLoad getInstance() {
if (instance == null) {
instance = new BigLoad();
}
return instance;
}
}
싱글톤이 필요한 이유 1.
로딩 오래 걸리는 걸 해결하기 위해서. 속도차이를 위해
객체를 한번만 만들기 때문에 아무리 많이 호출해도 한번만 실행하기 때문에
싱글톤이 필요한 이유 2.
웹페이지 클릭 한 번 할때마다 객체가 만들어지는데
그럼 디비 접속에도 큰 부하가 걸림.
그래서 직접 디비로 연결하는게 아니라 싱글톤을 통해서 디비 접속하기 때문에
디비 접속은 한번만 하게됨
싱글톤은 한 번 만든 객체를 영원히 사용할 수 있기 때문에
여러번 호출해도 객체를 여러개 생성하지 않습니다.
따라서 부하가 발생하지 않고,
한번 생성한 객체로 여러번 호출가능하기때문에 속도도 빠릅니다.
'자바' 카테고리의 다른 글
ValueObject (0) | 2024.07.22 |
---|---|
lombok.jar (0) | 2024.07.22 |
eclipse에서 ojdbc, 싱글톤 이용해서 db 접속 (0) | 2024.07.19 |
static singleton 템플릿 (0) | 2024.07.19 |
자바 로또 예제 (0) | 2024.07.18 |