OOPDesign

๐Ÿ“Œ ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์ฃผ์ž… ๋ฐ›์•„ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
= Forwarding (ํฌ์›Œ๋”ฉ)

Black-box Reuse

๐Ÿ“Œ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€๊ฐ€ ๊ณต๊ฐœ๋˜์ง€ ์•Š๊ณ  Interface๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ, ํ•ฉ์„ฑ์„ ํ†ตํ•œ ์žฌ์‚ฌ์šฉ
โ†” White-box Reuse

HAS-A Relationship

= HAS-A Relationship

์žฅ์ 

  1. Coupling (๊ฒฐํ•ฉ๋„) ๊ฐ์†Œ
  2. Interface๋ฅผ ํ†ตํ•œ ์žฌ์‚ฌ์šฉ โžก Data Abstraction, Encapsulation (์บก์Аํ™”), Information Hiding (์ •๋ณด ์€๋‹‰) ์œ ์ง€
  3. ๋™์ผ ํƒ€์ž…์˜ ๊ฐ์ฒด๋กœ ๋Ÿฐํƒ€์ž„์— Dynamicํ•˜๊ฒŒ ๊ฒฐ์ • ๊ฐ€๋Šฅ
  4. ํด๋ž˜์Šค ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์†Œ๊ทœ๋ชจ๋กœ ์œ ์ง€ โžก Less SW Complexity (SW Crisis)