λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

μƒμ„±νŒ¨ν„΄2

생성 νŒ¨ν„΄ 생성 νŒ¨ν„΄ μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“œλŠ” 절차λ₯Ό μΆ”μƒν™”ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€. μ‹œμŠ€ν…œμ΄ μ–΄λ–€ ꡬ체 클래슀λ₯Ό μ‚¬μš©ν•˜λŠ”μ§€μ— λŒ€ν•œ 정보λ₯Ό μΊ‘μŠν™”ν•œλ‹€. 객체의 생성/쑰합을 μΊ‘μŠν™”ν•˜μ—¬ νŠΉμ • 객체가 μƒμ„±λ˜κ±°λ‚˜ λ³€κ²½λ˜μ–΄λ„ ν”„λ‘œκ·Έλž¨ ꡬ쑰에 영ν–₯을 받지 μ•Šλ„λ‘ μœ μ—°μ„±μ„ μ œκ³΅ν•œλ‹€. λΉŒλ” (Builder) λ³΅μž‘ν•œ 객체의 생성과정과 ν‘œν˜„λ°©λ²•μ„ λΆ„λ¦¬ν•˜μ—¬ 객체λ₯Ό λ‹¨κ³„λ³„λ‘œ 생성할 수 μžˆλ„λ‘ ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€. λ§Žμ€ Optional ν•œ 멀버 λ³€μˆ˜λ‚˜ 지속성 μ—†λŠ” μƒνƒœ 값듀에 λŒ€ν•΄ μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” λ¬Έμ œλ“€μ„ ν•΄κ²°ν•œλ‹€. λ³€κ²½ κ°€λŠ₯성을 μ΅œμ†Œν™”ν•˜μ—¬ 값을 ν• λ‹Ήν•˜λŠ” μ‹œμ  좔적이 쉽닀. πŸ’‘ λ³€κ²½ κ°€λŠ₯μ„± μ΅œμ†Œν™” μˆ˜μ •μž νŒ¨ν„΄μ€ λΆˆν•„μš”ν•˜κ²Œ λ³€κ²½ κ°€λŠ₯성을 열어두어 값이 λ³€κ²½λ˜λŠ” μ‹œμ μ„ νŒŒμ•…ν•˜κΈ° νž˜λ“  반면, λΉŒλ” νŒ¨ν„΄μ€ 값을 ν• λ‹Ήν•˜λŠ” μ‹œμ μ΄ 객체의 생성 μ‹œμ  뿐이라 좔적이 쉽고 μœ μ§€.. 2022. 10. 28.
GoF λ””μžμΈ νŒ¨ν„΄ λ””μžμΈ νŒ¨ν„΄ 과거의 μ†Œν”„νŠΈμ›¨μ–΄ 개발 κ³Όμ •μ—μ„œ μΆ•μ λœ λ…Έν•˜μš°μ— 이름을 λΆ™μ—¬ 이후에 μž¬μ‚¬μš©ν•˜κΈ° 쒋은 ν˜•νƒœλ‘œ νŠΉμ • κ·œμ•½μ„ λ§Œλ“€μ–΄ μ •λ¦¬ν•œ 것이닀. 각기 λ‹€λ₯Έ μ†Œν”„νŠΈμ›¨μ–΄ λͺ¨λ“ˆμ΄λ‚˜ κΈ°λŠ₯을 가진 μ‘μš© μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œλ“€μ„ κ°œλ°œν•  λ•Œ μ„œλ‘œ κ³΅ν†΅λ˜λŠ” 섀계 문제 및 해결책이 μžˆλ‹€. μ΄λŸ¬ν•œ μœ μ‚¬μ μ„ νŒ¨ν„΄μ΄λΌκ³  ν•œλ‹€. λ””μžμΈ νŒ¨ν„΄μ€ λͺ¨λ“ˆμ˜ μ„ΈλΆ„ν™”λœ μ—­ν• μ΄λ‚˜ λͺ¨λ“ˆ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„ 방식을 섀계할 λ•Œ μ°Έμ‘°ν•  수 μžˆλŠ” μ „ν˜•μ μΈ ν•΄κ²° 방식이닀. GoF(Gang of Four) λ””μžμΈ νŒ¨ν„΄ 1995λ…„ 23개 νŒ¨ν„΄μ„ μˆ˜λ‘ν•œ λ…Όλ¬Έμ—μ„œ λ””μžμΈ νŒ¨ν„΄μ„ κ΅¬μ²΄ν™”ν•˜μ˜€λ‹€. λͺ©μ μ— 따라 생성 νŒ¨ν„΄ 5개, ꡬ쑰 νŒ¨ν„΄ 7개, ν–‰μœ„ νŒ¨ν„΄ 11개둜 κ΅¬μ„±λœλ‹€. λͺ©μ μ— 따라 객체의 생성 과정에 κ΄€μ—¬ν•˜λŠ” 생성 νŒ¨ν„΄ 객체의 합성에 κ΄€μ—¬ν•˜λŠ” ꡬ쑰 νŒ¨ν„΄ 객체가 상.. 2022. 9. 16.