728x90

๋ณดํ†ต ์ดˆ๋ณด ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž๋“ค์ด ์œ ๋‹ˆํ‹ฐ์—์„œ 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

+ Recent posts