λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • Dev Blog

CS/λ””μžμΈ νŒ¨ν„΄6

[GoF λ””μžμΈ νŒ¨ν„΄] - νŒ©ν† λ¦¬ λ©”μ„œλ“œ νŒ¨ν„΄ λͺ¨λ“  μ½”λ“œλŠ” Swift둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.  μƒμ„± νŒ¨ν„΄μƒμ„± νŒ¨ν„΄μ΄λž€ GoF λ””μžμΈ νŒ¨ν„΄ 쀑 κ°μ²΄λ₯Ό μƒμ„±ν•˜λŠ” 절차λ₯Ό μΆ”μƒν™”ν•˜λŠ” 5가지 λ””μžμΈ νŒ¨ν„΄μ„ λΆ„λ₯˜ν•œ 것을 μΌμ»«λŠ” μš©μ–΄μ΄λ‹€. 생성 νŒ¨ν„΄μ€ ν˜„λŒ€μ˜ 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 상속보닀 μ»΄ν¬μ§€μ…˜μ„ μ‚¬μš©ν•˜λŠ” λ°©ν–₯으둜 μ§„ν™”ν•˜λ©΄μ„œ λ”μš± μ€‘μš”ν•΄μ§€κ³  μžˆλ‹€. (μ‹€μ œλ‘œ κ΅¬κΈ€μ—μ„œ κ°œλ°œν•œ ν”„λ‘œκ·Έλž˜λ° 언어인 Golang 은 μ•„μ˜ˆ μƒμ†μ΄λž€ κ°œλ…μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.)  πŸ“Œ 상속과 μ»΄ν¬μ§€μ…˜ μƒμ†μ€ Animal - Cat, Dog ν˜Ήμ€ Man - Son, Husband, BoyFriend와 같이 IS-A 관계일 λ•Œ 객체의 κΈ°λŠ₯을 μ½”λ“œμ˜ 쀑볡 없이 ν™•μž₯μ‹œν‚¬ 수 μžˆλ‹€.μ»΄ν¬μ§€μ…˜μ€ Computer - Monitor, Keyboard, Mouse와 같이 HAS-A 관계일 λ•Œ 각각의 객체듀을 μ‘°ν•©.. 2024. 5. 28.
[GoF λ””μžμΈ νŒ¨ν„΄] - λ””μžμΈ νŒ¨ν„΄μ΄λž€? λͺ¨λ“  μ½”λ“œλŠ” Swift둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ΄λž€?λ””μžμΈ νŒ¨ν„΄μ΄λž€ μ†Œν”„νŠΈμ›¨μ–΄ 섀계에 μžˆμ–΄μ„œ 반볡적으둜 λ°œμƒν•˜λŠ” λ¬Έμ œλ“€μ„ ν•΄κ²°ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μΌμ’…μ˜ ν…œν”Œλ¦Ώ ν˜Ήμ€ κ°€μ΄λ“œλΌμΈμ΄λ‹€. ν”νžˆ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄κ³Ό 많이 ν˜Όλ™ν•΄μ„œ μš©μ–΄λ₯Ό μ‚¬μš©ν•˜κ³€ ν•œλ‹€.μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 전체적인 ꡬ쑰에 μ΄ˆμ μ„ 맞좘 νŒ¨ν„΄μ΄λΌλ©΄ λ””μžμΈ νŒ¨ν„΄μ€ 객체듀 κ°„μ˜ 관계에 μ΄ˆμ μ„ 맞좘 νŒ¨ν„΄μ΄λΌλŠ” 차이점이 μ‘΄μž¬ν•œλ‹€. GoF λ””μžμΈ νŒ¨ν„΄ν”νžˆ μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ—μ„œ 'λ””μžμΈ νŒ¨ν„΄'은 λŒ€λΆ€λΆ„ GoF(Gang of Four) λ””μžμΈ νŒ¨ν„΄μ„ μ˜λ―Έν•œλ‹€. 이듀은 각각의 λͺ©μ μ— 따라 생성 νŒ¨ν„΄, ꡬ쑰 νŒ¨ν„΄, ν–‰μœ„ νŒ¨ν„΄μœΌλ‘œ λΆ„λ₯˜ν•˜κ³  총 23개의 νŒ¨ν„΄μœΌλ‘œ κ΅¬μ²΄ν™”ν•˜μ˜€λ‹€.   μ΄λ ‡κ²Œλ‚˜ λ§Žμ€ λ””μžμΈ νŒ¨ν„΄μ„ κ³΅λΆ€ν•˜κ³  μ‚¬μš©ν•˜λŠ” μ΄μœ κ°€ λ¬΄μ—‡μΌκΉŒ? μ²«μ§Έ, μžμ—°μŠ€λŸ½κ²Œ 객.. 2024. 5. 28.