๋ฐ์ํ
Singleton ํจํด
๐ก ์ธ์คํด์ค๊ฐ ํ๋๋ง ์กด์ฌํ๋ ๊ฒ์ ๋ณด์ฆํ๋ ํจํด
๋ฑ์ฅ์ธ๋ฌผ
Singleton
- ์ ์ผํ ์ธ์คํด์ค๋ฅผ ์ป๊ธฐ ์ํ `static` ๋ฉ์๋๋ฅผ ๊ฐ์ง → ํญ์ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ฐํ
public class Singleton {
private static Singleton singleton = new Singleton();
private Singleton() {
System.out.println("์ธ์คํด์ค ์์ฑ")
}
public stgatic Singleton getInstance() {
return singletone;
}
}
- Singleton ํด๋์ค ๋ก๋ํ ๋ ์ด๊ธฐํ ์งํ
- `private` ์์ฑ์ : ์ธ๋ถ์์ ์์ฑ์ ํธ์ถ์ ๊ธ์งํ๊ธฐ ์ํจ
- `getInstance()`: ์ ์ผํ ์ธ์คํด์ค๋ฅผ ์ป๋ ๋ฉ์๋
Singleton ํ์ํ๊ฐ?
- ์ธ์คํด์ค๊ฐ ์ฌ๋ฌ๊ฐ ์กด์ฌํ๋ฉด, ์ธ์คํด์ค๊ฐ ์๋ก ์ํฅ์ ๋ฏธ์ณ ๋ฒ๊ทธ๋ฅผ ์์ฑ
- ๐์ธ์คํด์ค๊ฐ ํ๋๋ผ๋ ๋ณด์ฅ๐ ⇒ ์ ์ ์กฐ๊ฑด ํ์์ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฅ
Enum์ ์ฌ์ฉํ Singleton
- `enum` : ์์๋ก์ ์ธ์คํด์ค์ ์ ์ผ์ฑ์ ๋ณด์ฆ
enum Singleton {
INSTATNCE;
public void hello() {
System.out.println("hello is called.");
}
}
Singleton.INSTANCE.hello();
๋ฐ์ํ