Singleton && MonoState Pattern

싱글톤 패턴과 모노스테이트 패턴을 정리한다.

Singleton Pattern

단 하나의 인스턴스를 가져야하는 클래스가 있을 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Singleton {
private static Singleton theInstance = null;

private Singleton() {

}

public static Singleton Instance() {
if (theInstance == null) {
theInstance = new Singleton();
}

return theInstance;
}
}

Monostate Pattern

단일성을 이루기 위한 또 다른 방법이다.

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
public class Monostate {
private static int itsX = 0;

public Monostate() {

}

public void setX(int x) {
itsX = x;
}

public int getX() {
return itsX;
}
}

public class Test {

public void testInstanceBehavesAsOne() {
Monostate m1 = new Monostate();
Monostate m2 = new Monostate();

for (int x = 0; x < 10; x++) {
m1.setX(x);
assetEquals(x, m2.getX());
}
}
}

싱글톤 패턴은 단일성 구조를 강제하여 둘 이상의 인스턴스가 생성되는 것을 막는다.
모노스테이트 패턴은 구조적인 제약은 없지만, 단일성이 있는 행위를 강제한다.


클린 소프트웨어 <로버트 C.마틴>

Comments