티스토리 뷰

  • synchronized 사용
	public synchronized static Database getInstance(String name) {
	// synchronized 를 사용하여 실행되는 것들을 줄세워 차례대로 실행 -> 첫번째 스레드만 실행
	// 비용이 비쌈
		if(singleton == null) {
			singleton = new Database(name);
		}
		return singleton;
	}

  • static 으로 미리 객체생성
public class Database {
	// static 이므로 프로그램이 시작될 때 동시에 객체 생성
	private static Database singleton = new Database("products");
	private String name;

	private Database(String name) {
		try {
			// 실제 데이터베이스 접속 환경과 비슷하게 시간이 걸리도록 처리
			Thread.sleep(100);
			this.name = name;
		}catch(Exception e) {
			
		}
	}
	
	public static Database getInstance(String name) {
	// static 으로 프로그램이 실행되면서 바로 객체가 생성되어 따로 메소드에서 처리x
		
		return singleton;
	}
	public String getName() {
		return name;
	}
	
}

'java' 카테고리의 다른 글

[Java] Builder Pattern  (0) 2020.04.11
web.xml 오류  (0) 2020.04.06
[Java] Design Pattern 싱글턴 패턴  (0) 2020.03.22
[Java] Design pattern 클래스의 약한 결합, 강한 결합의 이해  (0) 2020.03.22
[Java] Java Design Pattern  (0) 2020.03.22
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함