"๐ญ ๋ฏธ์น ๋จ์น ํ์ถ!"์ข ์์ฑ ์ฃผ์ ์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์ค๋ช
6638 ๋จ์ด programmingbeginnersjavascript
๐ฅ ์ํํ ์ํฉ
์ฌ์์๊ฒ๋ ๋ฏธ์น ๋จ์ ์น๊ตฌ๊ฐ ์์ง๋ง ๊ทธ์๊ฒ์ ๋ฒ์ด๋ ์ ์์ต๋๋ค. ๊ทธ๋ ๋ ๋ค๋ฅธ ์ ํ์ด ์์ต๋๋ค.
class Woman {
makeLover(){
const bf = new CrazyMan()
bf.stayWith()
}
}
class CrazyMan {
stayWith() {
console.log('I am dangerous man, stay with me')
}
}
const woman = new Woman()
woman.makeLover()
// I am dangerous man, stay with me
๐ฆ ์ข์๋จ์๊ฐ ์๋ค!!
GoodMan ํด๋์ค ์์ฑ
class Woman {
makeLover(){
const bf = new CrazyMan()
bf.stayWith()
}
}
class CrazyMan {
stayWith() {
console.log('I am dangerous man, stay with me')
}
}
// good man !!!!!!!
class GoodMan {
stayWith() {
console.log('I am good man, stay with me')
}
}
const woman = new Woman()
woman.makeLover()
// ๐ฐ But still she stays with dangerous man
// "I am dangerous man, stay with me"
์ ๊ทธ๋ ๋ ์ฌ์ ํ ์ํํ ๋จ์์ ํจ๊ป ์์ต๋๊น ??
๊ทธ๋ (์ฌ์ฑ๋ฐ)๋ ์ํํ ๋จ์์๊ฒ ์์กดํ๊ธฐ ๋๋ฌธ์
class Woman {
makeLover(){
// here, crazy man exists in Woman class, he is aaaaaaalways with her
const bf = new CrazyMan()
bf.stayWith()
}
}
๊ทธ๋์ ๊ทธ๋ ๋ฅผ ๋์์ฃผ์ธ์ !! ์ฐ๋ฆฌ๋ ๋ฌด์์ํด์ผํฉ๋๊น ???
class Woman {
// She does not depend on crazy man, she has choice now !!
constructor(man) {
this.man = man
}
makeLover(){
this.man.stayWith()
}
}
class CrazyMan {
stayWith() {
console.log('I am dangerous man, stay with me')
}
}
class GoodMan {
stayWith() {
console.log('I am good man, stay with me')
}
}
const man = new GoodMan()
const woman = new Woman(man)
woman.makeLover()
// I am good man, stay with me
์ฐ๋ฆฌ๋ ๋ฏธ์น ๋จ์์ ๋ํ ์์กด์ฑ์ ์ง์์ ๊ทธ๋ ๋ฅผ ๋์ธ ์ ์์ต๋๋ค ๐
์ด๊ฒ์ ์ค๋ช ํ๊ธฐ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋๋ค. ์ง๊ธ๋ถํฐ ์์กด์ฑ ์ฃผ์ ์ ๋ํ ๋ค๋ฅธ ๊ธฐ์ฌ๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์์ต๋๋ค๐
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ("๐ญ ๋ฏธ์น ๋จ์น ํ์ถ!"์ข ์์ฑ ์ฃผ์ ์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ์ค๋ช ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/kaziusan/-escape-from-crazy-boy-friend-explain-dependency-injection-so-easily-32feํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค