์ฑ๊ธํค ํจํด(singleton pattern)
ํ๋์ ํด๋์ค์ ์ค์ง ํ๋์ ์ธ์คํด์ค๋ง ๊ฐ์ง๋ ํจํด
๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ชจ๋์ ์ฌ์ฉ๋จ
const URL = 'DB์ฃผ์'
const createConnection = url => ({"url" : url})
class DB {
constructor(url) {
if(!DB.instance){
DB.instance = createConnection(url)
}
return DB.instance
}
connect(){
return this.instance
}
}
const a = new DB(URL)
const b = new DB(URL)
console.log(a===b)
-> DB.instance ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก a, b๋ฅผ ์์ฑํ๋ ์์ ์ฝ๋
์ฑ๊ธํค ํจํด์ ์ฅ์
ํ๋์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ๋๊ณ ๋ค๋ฅธ ๋ชจ๋๋ค์ด ๊ณต์ ํ๋ฉฐ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค ์์ฑ ๋น์ฉ์ด ์ค์ด๋ฆ
์ฑ๊ธํค ํจํด์ ๋จ์
- ํ๋์ ์ธ์คํด์ค๋ฅผ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์์กด์ฑ์ด ๋์์ง
- TDD(Test Driven Development)ํ๊ธฐ ์ด๋ ค์ -> TDD๋ฅผ ํ ๋ ๋จ์ ํ ์คํธ๋ฅผ ํ๋๋ฐ, ์ฑ๊ธํค ํจํด์ ์ฌ์ฉํ๋ฉด ํ๋์ ์ธ์คํด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํํ๊ธฐ ๋๋ฌธ์ ํ ์คํธ๋ง๋ค ๋ ๋ฆฝ์ ์ธ ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ธฐ๊ฐ ์ด๋ ค์
- ๋ชจ๋๊ฐ์ ๊ฒฐํฉ์ด ๊ฐํด์ง. ํ๋๋ฅผ ์์ ํ๋ฉด ๋๋จธ์ง๋ ์์ ํด์ผ ๋จ
์ฐธ๊ณ ์๋ฃ
[๋ฉด์ ์ ์ํ CS ์ ๊ณต์ง์ ๋ ธํธ]
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ์๋ฐ ์ปฌ๋ ์ (Collection) ํ๋ ์์ํฌ (0) | 2022.01.18 |
---|---|
[JAVA] Wrapper Class (0) | 2022.01.14 |
[JAVA] Garbage Collection (0) | 2022.01.11 |
[JAVA] ํ๋ก์ธ์ค(Process)์ ์ค๋ ๋(Thread) (0) | 2022.01.11 |
[JAVA] ์ ์ถ๋ ฅ(I/O) ๋ณด์กฐ ์คํธ๋ฆผ : BufferedReader, BufferedWriter (0) | 2022.01.11 |