싱글톤 패턴 생성
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
|
public class Singleton{
private static Singleton SINGLETON_CLASS_INSTANCE = new Singleton();
public int a = 0;
// 외부클래스에서 생성자에 접근할수 없다.
private Singleton(){}
// 생성자를 생성 및 호출해준다.
// 외부에서 접근하는 클래스의 메모리 주소값은 모두 동일하다.
public static Singleton getSingletonClass(){
if(SINGLETON_CLASS_INSTANCE == null){
SINGLETON_CLASS_INSTANCE = new Singleton();
}
return SINGLETON_CLASS_INSTANCE;
}
public int get(){
return a;
}
public void set(int a){
this.a = a;
}
}
| cs |
싱글통 패턴 사용 예
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
|
public class FirstClass{
public FirstClass(){
Singleton singletonClass = Singleton.getSingletonClass();
System.out.println("a === " + singletonClass.get());
singletonClass.set(100);
System.out.println("a === " + singletonClass.get());
}
}
public class SecondClass{
public SecondClass(){
Singleton singletonClass = Singleton.getSingletonClass();
System.out.println("a === " + singletonClass.get());
}
}
public class MyClass{
public static void main(String args[]){
FirstClass firstClass = new FirstClass();
SecondClass secondClass = new SecondClass();
}
}
| cs |
result
a === 0 <- firstclass
a === 100 <- firstclass
a === 100 <-secontclass
동일한 주소를 가르킨다.
댓글
댓글 쓰기