์ถ์ ์ฑ๊ธํค ํจํด์ ์ถ์ํ ๋์ด ์๋ ์ฑ๊ธํค ํจํด์ ์์๋ฐ์์, ์ฌ์ฉํ๋ ํจํด์ ๋๋ค. ๋ง์ฝ ์ฑ๊ธํค์ผ๋ก ๋ณ๊ฒฝํด์ผ ํ๋ ํด๋์ค๊ฐ 5๊ฐ๋ผ๋ฉด, 5๊ฐ ๋ชจ๋ ์ฑ๊ธํค ํจํด์ ์ ์ฉํ๊ธฐ ๋ณด๋จ ์์๊ณผ ํ ํ๋ฆฟ์ ์ด์ฉํด์ ์ถ์ํ๋ ์ฑ๊ธํค์ ๊ตฌํํฉ๋๋ค.
๋งค์ฐ ๊ฐ๋จํ๋๊น ๋ฐ๋ผํด๋ณด์ธ์ :)
1. ์์ ๋ฐ์ ์ถ์ํ ํด๋์ค๋ฅผ ํ
ํ๋ฆฟ์ผ๋ก ๊ตฌํ.
<template typename T>
class SingletonTemplate
{
public:
T* GetInstance()
{
if ( m_instance == nullptr )
{
m_instance = new T();
}
return m_instance;
}
private:
SingletonTemplate();
static T* m_instance;
}
Lasy create๋ก ๊ตฌํํด๋ดค์ต๋๋ค. GetInstance๊ฐ ์ฒ์ ํธ์ถ๋์ ๋ ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค.
2. ์ฌ์ฉํ ํด๋์ค์์ ์ถ์ ์ฑ๊ธํค ํด๋์ค๋ฅผ ์์
class DataHandler : public SingletonTemplate<DataHandler>
{
...
}
3. ์ธ์คํด์ค ์ฌ์ฉ
const auto* handler = DataHnadler::getInstance();
๊ฐ๋จํ๊ฒ ์ถ์ ์ฑ๊ธํค์ ๊ตฌํํ ์์ ์ ๋๋ค.
'๋์์ธํจํด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์์ธํจํด] ์ปดํฌ์งํธ(Composite) ํจํด (0) | 2024.08.25 |
---|---|
[๋์์ธํจํด] ์ ๋ต(Strategy) ํจํด (0) | 2024.08.24 |
[๋์์ธํจํด] ๋ฐ์ฝ๋ ์ดํฐ ํจํด (0) | 2024.08.23 |
์ฑ๊ธํค ํจํด (1) | 2023.01.03 |
๋๊ธ