티스토리 뷰

java

[Java] Design Pattern 싱글턴 패턴

tonirr 2020. 3. 22. 14:44

싱글턴 패턴

  • 최대 N개로 객체 생성을 제한하는 패턴
  • 객체가 너무 많아지는 경우 컴퓨터 자원을 과도하게 사용하게 되며 이는 프로그램 전체의 속도를 느리게 할 수 있다.
    • 개발자는 객체 최대 개수를 제한할 필요가 있음
  • 생성되는 객체의 최대 개수를 제한하는데 있어 객체의 생성을 요청하는 쪽에서는 일일이 신경쓰지 않아도 되도록 만들어 주는 것이 중요
  • 싱글턴 패턴 사용 예
    • 일반 자바 프로그래밍
      • 데이터베이스 커넥션 풀
      • 로그 라이터 등
    • 게임 프로그래밍
      • 사운드 매니저
      • 스코어 매니저
    • 하나의 객체로 데이터를 하나로 유지하고 싶을 때 사용

Database.java

public class Database {
	private static Database singleton;
	private String name;

	public Database(String name) {
		super();
		this.name = name;
	}
	
	public static Database getInstance(String name) {
		// 최초에는 singleton이 null이므로 singleton이 생성됨
		// 최초 생성 이후에는 singleton이 null이 아니므로 singleton이 
		if(singleton == null) {
			singleton = new Database(name);
		}
		return singleton;
	}
	public String getName() {
		return name;
	}
	
}

TestPattern1.java

public class TestPattern1 {

	public static void main(String[] args) {

		Database database;
		database = Database.getInstance("첫 번쨰 Database");
		System.out.println("This is the " + database.getName()+" !!");
		
		database = Database.getInstance("두 번쨰 Database");
		System.out.println("This is the " + database.getName()+" !!");
		
	}

}

결과

첫 뻔째 database 만 저장되었기 때문에 결과에도 이렇게 나타남

 

database객체의 name에 하나만 들어간 것을 확인 할 수 있음

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함