λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“ŒCS/Design Pattern

[Design Pattern] μ–΄λŒ‘ν„° νŒ¨ν„΄(Adapter Pattern)

by dar0m! 2021. 5. 2.

κ°œλ…

μΈν„°νŽ˜μ΄μŠ€μ˜ 뢈일치λ₯Ό ν•΄κ²°ν•΄μ„œ ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”κ΅¬ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” 것. ν˜Έν™˜μ„±μ΄ μ—†λŠ” μΈν„°νŽ˜μ΄μŠ€ λ•Œλ¬Έμ— ν•¨κ»˜ λ™μž‘ν•  수 μ—†λŠ” ν΄λž˜μŠ€λ“€μ΄ ν•¨κ»˜ λ™μž‘ν•˜λ„λ‘ ν•΄μ€€λ‹€.

μ˜ˆμ‹œ ( 좜처 : https://jusungpark.tistory.com/22)
μ–΄λŒ‘ν„° νŒ¨ν„΄ 클래슀 λ‹€μ΄μ–΄κ·Έλž¨ (좜처 : https://jusungpark.tistory.com/22)

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ–΄λŒ‘ν„°λ₯Ό μ‚¬μš©ν•˜λŠ” 방법

  1. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ νƒ€κ²Ÿ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•¨μœΌλ‘œμ¨ μ–΄λŒ‘ν„°μ— μš”μ²­μ„ ν•œλ‹€.
  2. μ–΄λŒ‘ν„°μ—μ„œλŠ” μ–΄λŒ‘ν‹° μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ κ·Έ μš”μ²­μ„ μ–΄λŒ‘ν‹°μ— λŒ€ν•œ ν•˜λ‚˜ μ΄μƒμ˜ λ©”μ†Œλ“œλ₯Ό 호좜둜 λ³€ν™˜ν•œλ‹€.
  3. ν΄λΌμ΄μ–ΈνŠΈμ—μ„œλŠ” 호좜 κ²°κ³Όλ₯Ό λ°›κΈ΄ ν•˜μ§€λ§Œ 쀑간에 μ–΄λŒ‘ν„°κ°€ κ»΄ μžˆλŠ”μ§€λŠ” μ „ν˜€ μ•Œμ§€ λͺ»ν•œλ‹€.

 

μž₯점

  • μΈν„°νŽ˜μ΄μŠ€ 뢈일치 ν•΄κ²°
  • ν΄λΌμ΄μ–ΈνŠΈμ™€ κ΅¬ν˜„λœ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λΆ„λ¦¬μ‹œν‚¬ 수 μžˆλ‹€.
  • ν–₯ν›„ μΈν„°νŽ˜μ΄μŠ€κ°€ λ°”λ€Œλ”λΌλ„ λ³€κ²½ 내역은 μ–΄λŒ‘ν„°μ— μΊ‘μŠν™”λ˜κΈ° λ•Œλ¬Έμ— ν΄λΌμ΄μ–ΈνŠΈλŠ” λ°”λ€” ν•„μš”κ°€ μ—†λ‹€.

 

μ’…λ₯˜

(쒌)객체 μ–΄λŒ‘ν„°, (우)클래슀 μ–΄λŒ‘ν„° (좜처 : https://jusungpark.tistory.com/22)

  1. 객체 μ–΄λŒ‘ν„°
    • 이미 μ‘΄μž¬ν•˜λŠ” 객체의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ³€κ²½
    • ν΄λΌμ΄μ–ΈνŠΈμ˜ μš”μ²­μ„ μ–΄λŒ‘ν„°λ₯Ό 톡해 μ–΄λŒ‘ν‹°μ— μš”μ²­μ„ μ „λ‹¬ν•œλ‹€.
  2. 클래슀 μ–΄λŒ‘ν„°
    • 클래슀 자체의 μΈν„°νŽ˜μ΄μŠ€ λ³€κ²½
    • μ–΄λŒ‘ν„°λ₯Ό λ§Œλ“€ λ•Œ νƒ€κ²Ÿκ³Ό μ–΄λŒ‘ν‹° λͺ¨λ‘μ˜ μ„œλΈŒ 클래슀둜 λ§Œλ“ λ‹€.
    • 클래슀 μ–΄λŒ‘ν„°λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 닀쀑 상속이 ν•„μš”ν•œλ°, μžλ°”μ—μ„œλŠ” 닀쀑 상속이 λΆˆκ°€λŠ₯ν•˜λ‹€.

(μžμ„Έν•œ 예)

Target 은 였리, AdapteeλŠ” 칠면쑰라 λ³Ό 수 μžˆλ‹€.

 

λ””μžμΈνŒ¨ν„΄ - μ–΄λŒ‘ν„° νŒ¨ν„΄ (adapter pattern)

μ–΄λŒ‘ν„° νŒ¨ν„΄ (adapter pattern) ν•œ 클래슀의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ‚¬μš©ν•˜κ³ μžν•˜λŠ” λ‹€λ₯Έ μΈν„°νŽ˜μ΄μŠ€λ‘œ λ³€ν™˜ν•œλ‹€. μ–΄λŒ‘ν„°λ₯Ό μ΄μš©ν•˜λ©΄ μΈν„°νŽ˜μ΄μŠ€ ν˜Έν™˜μ„± 문제 λ•Œλ¬Έμ— 같이 μ“Έ 수 μ—†λŠ” 클래슀

jusungpark.tistory.com

 

38. μ–΄λŒ‘ν„° ( Adapter )

λ””μžμΈνŒ¨ν„΄ ν¬μŠ€νŒ…μ€ μ‚Όμ„± μ†Œν”„νŠΈμ›¨μ–΄ 멀버십 ꡐ윑 λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€. Adapter νŒ¨ν„΄ μΈν„°νŽ˜μ΄μŠ€μ˜ 뢈일치λ₯Ό ν•΄κ²°ν•΄μ„œ ν΄λΌμ΄μ–ΈνŠΈκ°€ μš”κ΅¬ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•˜λŠ” 것. ν˜Έν™˜μ„±μ΄

supark7.tistory.com

 

μ°Έκ³ 

 

'πŸ“ŒCS > Design Pattern' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Design Pattern] ν”„λ‘μ‹œ νŒ¨ν„΄(Proxy Pattern)  (0) 2021.04.25

λŒ“κΈ€