PR link πŸ”—

πŸ“˜Β κ΅¬ν˜„μ— λŒ€ν•œ μ„€λͺ…

μ•ˆλ…•ν•˜μ„Έμš”. λ¦¬λ·°ν•΄μ£Όμ‹œλ‘œ μ˜€μ‹  λͺ¨λ“  λΆ„λ“€ κ°μ‚¬ν•©λ‹ˆλ‹€! πŸ™‡πŸ»

정말 μ΅œλŒ€ν•œ 짧게 μ „ν•˜κ³ μž ν•˜λŠ” 뢀뢄을 μž‘μ„±ν•΄ λ³΄μ•˜λŠ”λ°μš”. μ½”λ“œμ— λŒ€ν•œ 이해λ₯Ό 돕고 리뷰의 질과 νŽΈμ˜μ„±μ„ λ†’μ΄κ³ μž κ΅¬ν˜„μ— λŒ€ν•œ μ„€λͺ…을 λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€.

νŽΈν•˜κ²Œ μ½μ–΄μ£Όμ‹œκ³  μ˜κ²¬μ„ μ£Όμ‹œλ©΄ μ’‹κ² μŠ΅λ‹ˆλ‹€! :)

쀑점을 두고 μžˆλŠ” 섀계 λ°©ν–₯


βœ…Β μΆ”κ΅¬ν•˜λŠ” 객체 μ§€ν–₯ 섀계 방식

μ €λŠ” μ„€κ³„μ—μ„œ 객체의 정체성을 μš°μ„ μ‹œν•˜κ³ , μ—­ν• λ§Œμ„ μœ„ν•œ κ°μ²΄λŠ” κΌ­ ν•„μš”ν•˜μ§€ μ•Šμ€ 이상 μ΅œμ†Œν™”ν•˜λ €κ³  λ…Έλ ₯ν–ˆμŠ΅λ‹ˆλ‹€.

가독성을 ν•΄μΉ˜μ§€ μ•ŠλŠ” ν•œμ—μ„œ, κ°μ²΄λŠ” 자체적으둜 정체성을 λ‚˜νƒ€λ‚΄λŠ” validation을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄, [1, 2, 3, 4, 5, 6] μ΄λΌλŠ” μˆ«μžκ°€ μžˆλ‹€λ©΄,

List<Integer> = [1, 2, 3, 4, 5, 6]둜 λ³΄λŠ” λŒ€μ‹ , μ €λŠ” 이λ₯Ό LottoλΌλŠ” 객체둜 λ°”λΌλ³΄μ•˜μŠ΅λ‹ˆλ‹€.

Lotto λŠ” μ •ν•΄μ§„ 길이에 λ§žμ•„μ•Ό ν•˜λ©° 쀑볡 μ—†λŠ” ꡬ성을 μœ μ§€ν•˜λŠ” νŠΉμ„±μ΄ ν•„μš”ν•  κ²ƒμž…λ‹ˆλ‹€.

Lotto = List<Number> 둜 μΆ”κ°€μ μœΌλ‘œ λ°”λΌλ³΄κ²Œ λœλ‹€λ©΄,

NumberλŠ” νŠΉμ • 숫자 λ²”μœ„ 내에 μžˆμ–΄μ•Ό ν•œλ‹€λŠ” 정체성이 μ‘΄μž¬ν•©λ‹ˆλ‹€.

μ΄λŸ¬ν•œ μ œμ•½ 쑰건듀을 makerλ‚˜ validator 같은 λ³„λ„μ˜ 클래슀λ₯Ό 두기보닀, Lotto와 Number 객체 λ‚΄λΆ€μ—μ„œ 자체적으둜 κ²€μ¦ν•˜λ„λ‘ ν•˜μ—¬ 클래슀 수λ₯Ό 쀄이고, 객체의 정체성이 λͺ…ν™•ν•˜κ²Œ λ“œλŸ¬λ‚˜λ„λ‘ μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€.