Programming
No. | 261 |
Name. | coolx |
Subject. | 싱글톤(Singleton) Pattern 이란? |
Main Cate. | Java |
Sub Cate. | |
Date. | 2006-07-07 11:10 |
Hit. | 5108 (220.76.115.27) |
File. | |
싱글톤(Singleton) Pattern 이란? 객체지향형언어(OOP)에 대해 조금이라도 파고든 사람이라면 싱글톤 패턴이라는 말을 들어봤을 것이다. 못들어봤다면 이제부터 들었다고 해라. 싱글톤이란 생성하고자 하는 인스턴스의 수를 오직 하나로 제한하는 디자인 패턴이다. 그렇다면 왜 싱글톤 패턴을 사용해야하는 것일까? 라는 질문에 대게 답하는 것이 여러개의 인스턴스를 생성하게 되면 가끔 프로그래머도 당혹스럽게 되는 서로의 인스턴스에 간섭을 하는 경우가 있다. 정말 재수 없는 일이 아닐 수가 없다. public class Singleton { private static Singleton singleton = new Singleton(); protected Singleton() { System.out.println("Maked Singleton"); } public static Singleton getInstance() { return singleton; } } 싱글톤의 기본형이다. singleton 멤버변수는 static 이어야한다는 것과 Singleton 클래스의 생성자는 private / protected 이어야한다는 것을 꼭 유념해야한다. private 일 경우는 결코 new 를 이용하여 인스턴스의 중복 생성을 방지하는 셈이기도 하나 상속이 되지 않는다는 단점이 있어 protected로 대게 선언한다. 뭐~ 싱글톤 패턴이 만들어졌나 아닌가 확인할 것이라면 Test 클래스를 만들어보자. public class Test { public static void main(String [] args) { System.out.println("Singleton pattern"); Singleton sg1=Singleton.getInstance(); Singleton sg2=Singleton.getInstance(); if( sg1 == sg2 ) { System.out.println("Equal"); } else { System.out.println("Not Equal"); } } } 여기서 보면 Singleton 의 인스턴스를 생성하기 위해 getInstance() 메소드를 이용한다. 왜 그럴까? Singleton 클래스의 private static Singleton singleton = new Singleton(); 부분을 유심히 바라보기 바란다. 이 singleton은 static으로 선언된다. 즉 하나의 인스턴스 singleton 만 생성하는 셈이다. 아마 결과도 Equal로 출력될 것이다. [바로가기 링크] : http://coolx.net/cboard/develop/261 |
|
|
|
[Modify] [Delete] | [Reply] [List] |