I.์ฑ๊ธํค
์ํํธ์จ์ด ๋์์ธ ํจํด์์ ์ฑ๊ธํด ํจํด(Singleton pattern)์ ๋ฐ๋ฅด๋ ํด๋์ค๋, ์์ฑ์๊ฐ ์ฌ๋ฌ ์ฐจ๋ก ํธ์ถ๋๋๋ผ๋ ์ค์ ๋ก ์์ฑ๋๋ ๊ฐ์ฒด๋ ํ๋์ด๊ณ ์ต์ด ์์ฑ ์ดํ์ ํธ์ถ๋ ์์ฑ์๋ ์ต์ด์ ์์ฑ์๊ฐ ์์ฑํ ๊ฐ์ฒด๋ฅผ ๋ฆฌํดํ๋ค. ์ด์ ๊ฐ์ ๋์์ธ ์ ํ์ ์ฑ๊ธํด ํจํด์ด๋ผ๊ณ ํ๋ค. ์ฃผ๋ก ๊ณตํต๋ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํด์ ์ฌ์ฉํ๋ DBCP(DataBase Connection Pool)์ ๊ฐ์ ์ํฉ์์ ๋ง์ด ์ฌ์ฉ๋๋ค.
์ฝ๊ฒ๋งํด ์ธ์คํด์ค๋ฅผ ๋จ์ฉ์ํค์ง์๋๋ค. ์ฑ๊ธํด ํจํด์ ํ๋์ ๊ฐ์ฒด๋ง์ ์์ฑํ ํธ์ถ๋ ๊ณณ์์๋ ์์ฑ๋ ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ฌ ํ๋ก๊ทธ๋จ ์ ๋ฐ์ ์ผ๋ก ๋จ ํ๋์ ์ธ์คํด์ค๋ง์ ์ฌ์ฉํ๊ฒ ํ๋ ํจํด์ด๋ค.
2. ์ฑ๊ธํค์ ํ์ฉํ ์์
๊นํ๋ธ ๋งํฌ
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
32
33
34
35
36
|
package main;
import cls.HeClass;
import cls.MyClass;
import cls.YouClass;
public class MainClass {
public static void main(String[] args) {
/*
Singleton : instance๋ฅผ 1๊ฐ๋ง ์์ฑํด์ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๊ธฐ ์ํ ํจํด
*/
MyClass mycls = new MyClass();
YouClass youcls = new YouClass();
// ์ซ์ ์ถ๋ ฅ ๋ฉ์๋
youcls.print();
//๋ฌธ์์ด ์ ์ฉ
HeClass hecls = new HeClass("ํ๊ธธ๋");
//๋ฌธ์์ด ์ถ๋ ฅ ๋ฉ์๋
mycls.method();
}
}
|
cs |
2. <SIngletonClass>
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
32
33
34
|
package singleton;
public class SingletonClass {
//์ฑ๊ธํค ์์ฑ
private static SingletonClass sc = null;
/////////////////////
public int sNumber;
public String name;
//////////////////////
private SingletonClass() {
}
public static SingletonClass getInstance() {
if(sc == null) { // ํ๋ฒ๋ง ์คํ๋จ
sc = new SingletonClass();
}
return sc;
}
}
|
cs |
3.<HeClass>
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
|
package cls;
import singleton.SingletonClass;
public class HeClass {
//๋ฌธ์์ด์ MyClass๋ก
private String name;
public HeClass(String name) {
this.name = name;
SingletonClass sc = SingletonClass.getInstance();
sc.name = this.name;
}
}
|
cs |
4.<YouClass>
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
|
package cls;
import singleton.SingletonClass;
public class YouClass {
private int num;
//๋ฌธ์ ๋ฐ๊ฟ ์ถ๋ ฅ ๋ฉ์๋
public void print() {
SingletonClass sc = SingletonClass.getInstance();
num = sc.sNumber;
System.out.println(num);
}
}
|
cs |
5.<MyClass>
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
32
33
34
35
36
37
38
39
|
package cls;
import singleton.SingletonClass;
public class MyClass {
private int number;
private String name;
//////////////////////////// ๋ฉค๋ฒ ๋ณ์
//์ซ์
public MyClass() {
number = 123;
SingletonClass s = SingletonClass.getInstance();
s.sNumber = number;
}
//๋ฌธ์์ด
public void method() {
SingletonClass sc = SingletonClass.getInstance();
this.name = sc.name;
System.out.println(name);
}
}
|
cs |
'๐ ์๋ฐ Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Generics (์ง๋ค๋ฆญ์ค) (0) | 2021.02.05 |
---|---|
Factory(ํฉํ ๋ฆฌ) ๋ฉ์๋ ํจํด (0) | 2021.02.04 |
List์ HashMap, Iterator์ ํ์ฉํ ์ผ๊ตฌ ์ ์ ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ (0) | 2021.02.03 |
HashMap๊ณผ TreeMap (0) | 2021.02.03 |
LinkedList ๊ฐ๋จ ์ ๋ฆฌ & ์์ฝ (0) | 2021.02.03 |
๋๊ธ