๋ณดํต ์ด๋ณด ๊ฒ์ ๊ฐ๋ฐ์๋ค์ด ์ ๋ํฐ์์ C#์ ์ฌ์ฉํ๋ค๊ฐ ํ๋ฒ ์ค์ ํด๋์ ์ค์ ๋ค์ ๋์ด๋ค ์ฐ๋ ค๊ณ ์ ํ๊ฒ ๋๋ ๋์์ธ ํจํด์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.(๋ณธ์ธ ๊ฒฝํ๋ด..)
์ต๊ทผ ๋ฉด์ ์์ ์ฑ๊ธํค๊ณผ ์ ์ญ๋ณ์์ ์ฐจ์ด์ ์ ๋ํด ์ ๋๋ก ๋๋ตํ์ง ๋ชปํ์๊ธฐ๋๋ฌธ์ ๋ธ๋ก๊ทธ๋ก ํ๋ฒ ์ ๋๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
์ฑ๊ธํค์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์๋ ๋ ์ด๋ค ํด๋์ค๊ฐ ์ต์ด๋ก ํ๋ฒ๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ ๊ทธ ๋ฉ๋ชจ๋ฆฌ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๋์์ธ ํจํด์ด๋ค.
์ฑ๊ธํค๊ณผ ์ ์ญ๋ณ์๋ ์ต์ด๋ก ํ๋ฒ๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ ๊ทธ ์์์ ๋์ด๋ค ์ด๋ค๋ ์ ์์ ๋น์ทํ๋ฐ ๋์ ์ฐจ์ด์ ์ด ์๋ค.
์ฑ๊ธํค ํจํด๊ณผ ์ ์ญ๋ณ์์ ์ฐจ์ด์
1. ์์ฑ์์
์ ์ญ๋ณ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋ ๋ ์์ฑ
์ฑ๊ธํค ํจํด์ ํด๋น ํจ์๊ฐ initialize๋๋ฉด์ ์์ฑ
2. ์์ํ ๋น
์ ์ญ ๋ณ์๋ ์์์ ์์ด ์์ฒญ๋๊ฒ ํฌ๋ค๊ณ ๊ฐ์ ํจ(ํน์ ์์ ์์๋ง ์ฌ์ฉ๋๋ค๋ฉด ์์ฒญ๋ ๋ญ๋น)
์ฑํดํค ํจํด์ ์ฌ์ฉํ ๋ ์์์ ํ ๋นํ๊ณ ์์ ์ด ์ํ ๋ ์์์ ํด์ ๊ฐ๋ฅ
์ฑ๊ธํค ํจํด์ ๋จ์
- ์์์ด ๋ถ๊ฐ๋ฅ(private ์์ฑ์๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ)
- ์ํ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ ์ฑ๊ธํค์ผ๋ก ๋ง๋ค๋ฉด ์๋จ(์ํ๊ฐ ๊ณต์ ๋๋ค๋ ๊ฒ์ ๋งค์ฐ ์ํํจ, ์ ์ผํด์ผํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ฑ๊ธํค์ผ๋ก ๋ง๋ค์ด์ผํจ)
- ์ฑ๊ธํค์ ์ฌ์ฉํ๋ ๊ณณ๊ณผ ์ฑ๊ธํค ํด๋์ค ์ฌ์ด์ ์์กด์ฑ์ด ์๊ธฐ๊ฒ ๋์ ๊ฒฐํฉ๋๊ฐ ๋์์ ธ์ ์์ ๋ฐ ๋จ์ํ ์คํธ์ ์ด๋ ค์์ด ์๊ธฐ๊ฒ ๋จ
- ์ ์ญ ์ํ๋ฅผ ๊ฐ๋ ๊ฒ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ง์๋์ด์ผ ํ ๋ชจ๋ธ(์์ ๊ฐ์ด ๊ฒฐํฉ๋๊ฐ ๋์์ง๊ธฐ ๋๋ฌธ)
- ๋ฉํฐ์ฐ๋ ๋ ํ๊ฒฝ์์ ์ธ์คํด์ค๊ฐ ๋๊ฐ ์์ฑ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์์
Unity C#์์ ์ฐ๋ ํจํด์ ๋ค์๊ณผ ๊ฐ๋ค.
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 manager : MonoBehaviour
{
//instance๋ฅผ static์ผ๋ก ์ ์ธ
private static manager instance = null;
//์ ๋ํฐ์์๋ ํ๋ก๊ทธ๋จ์ด ์์๋ ๋ initialization ๋ถ๋ถ์์ ์ ์ผ ๋จผ์ ์คํ๋๋ ํจ์
void Awake(){
//๋ง์ฝ instance๊ฐ ๋น์ด์์ ๋
if(instance==null){
instance=this;
}
}
//๋ค๋ฅธ ํด๋์ค์์ ํธ์ถํ ์ ์๋๋ก static ํ๋กํผํฐ ์ ์ธ
//ํ๋กํผํฐ : ํ๋(๋ฐ์ดํฐ ๋ฉค๋ฒ)์ ๋ฉ์๋ ๊ฐ ๊ธฐ๋ฅ์ ์ค๊ฐ์ธ ํด๋์ค ๋ฉค๋ฒ์ ํน์ํ ์ ํ
public static manager Instance
{
get
{
if (null == instance)
{
return null;
}
return instance;
}
}
}
|
cs |
'๊ณต๋ถ > Design Pattern' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ด๋ฒคํธ ํ ํจํด (Event Queue Pattern) (0) | 2024.12.29 |
---|