Hamutaro - Hamtaro 4

Java

[JAVA] ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์ด๋ž€?

carsumin 2022. 1. 11. 14:49

 

์‹ฑ๊ธ€ํ†ค ํŒจํ„ด(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 ์ „๊ณต์ง€์‹ ๋…ธํŠธ]