์ฑ๊ธํค ํจํด
- ํด๋์ค์ ์ธ์คํด์ค๊ฐ 1๊ฐ๋ง ์๋ ๊ฒ์ ๋ณด์ฅํ๋ ๋์์ธ ํจํด
package hello.core.singleton;
public class SingletonService {
//1. static ์์ญ์ ๊ฐ์ฒด๋ฅผ ๋ฑ 1๊ฐ๋ง ์์ฑํด๋๋ค.
private static final SingletonService instance = new SingletonService();
//2. public์ผ๋ก ์ด์ด์ ๊ฐ์ฒด ์ธ์คํด์ค๊ฐ ํ์ํ๋ฉด ์ด static ๋ฉ์๋๋ฅผ ํตํด์๋ง ์กฐํํ๋๋ก ํ์ฉํ๋ค.
public static SingletonService getInstance() {
return instance;
}
//3. ์์ฑ์๋ฅผ private์ผ๋ก ์ ์ธํด์ ์ธ๋ถ์์ new ํค์๋๋ฅผ ์ฌ์ฉํ ๊ฐ์ฒด ์์ฑ์ ๋ชปํ๊ฒ ๋ง๋๋ค.
private SingletonService() {
}
public void logic() {
System.out.println("์ฑ๊ธํค ๊ฐ์ฒด ๋ก์ง ํธ์ถ");
}
}
๊ตฌํ ๋ฐฉ๋ฒ
- static final ์ธ์๋ก ๋ถ๋ณ์ ์ธ์คํด์ค๋ฅผ ์์ฑ
- ์์ฑ์๋ฅผ private ๋ก ์ ์ธํ์ฌ ์ธ๋ถ์์์ ๊ฐ์ฒด ์์ฑ์ ๋ง๋๋ค
- ํ๋๋ง ์กด์ฌํ๋ instance ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด getInsatance ํจ์๋ฅผ ์์ฑํ๋ค.
์ฅ์
- ์๋ฒ ์์ฑ์์ ๋ง๋ค์ด์ง๊ธฐ์ ์์ฒญ ์ฒ๋ฆฌ๊ฐ
- ๊ฐ์ฒด ํ๋๋ง์ ์์ฑํ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ์ ์๋ค.
- ๋ค๋ฅธ ์ธ์คํด์ค์ ๋ฐ์ดํฐ ๊ณต์ ๊ฐ ํธํ๋ค (๋ค ์ฑ๊ธํค์ด๋ฉด ๋ค ์ ์ญ)
ํ์ง๋ง ๋จ์ ๋ง๋ค
- ์ฑ๊ธํค ํจํด ๊ตฌํ ์ฝ๋๊ฐ ์์ด ๋ง์ด๊ฐ
- ์์กด ๊ด๊ณ์, ํด๋ผ์ด์ธํธ๊ฐ ๊ตฌ์ฒด์ ์์กดํ๋ค
- ํ ์คํธ ํ๊ธฐ ์ด๋ ต๋ค
- ๋ด๋ถ ์์ฑ ๋ณ๊ฒฝ๊ณผ ์ด๊ธฐํ๊ฐ ์ด๋ ต๋ค.
- private ์์ฑ์ ๋๋ฌธ์ ์์ ํด๋์ค ๋ง๋ค๊ธฐ๊ฐ ์ด๋ ต๋ค
- ์ ์ฐ์ฑ์ด ๋จ์ด์ง๋ค.
์ด๋ฐ ๋ง์ ๋จ์ ์์ง๋ง
์คํ๋ง์ด ๋ค ํด๊ฒฐํด์ค๋ค.
์คํ๋ง์์๋ ๊ธฐ๋ณธ์ด ์ฑ๊ธํค ์ปจํ ์ด๋์ด๋ค.
๋ค์ ๊ฐ์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์ ๋ฆฌํ์ต๋๋ค.
https://www.inflearn.com/course/์คํ๋ง-ํต์ฌ-์๋ฆฌ-๊ธฐ๋ณธํธ
'๐ Backend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SQL] SELECT ๊ด๋ จ ํจ์ (0) | 2025.02.05 |
---|---|
[Security] ์คํ๋ง ์ํ๋ฆฌํฐ (0) | 2024.02.27 |
[Spring Basic] ์คํ๋ง ์ปจํ ์ด๋์ ๋น (0) | 2024.01.18 |
[Spring Basic] IoC์ DI (0) | 2024.01.18 |
[Spring Basic] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง (0) | 2024.01.18 |