λ„μ„œ πŸ“š/Effective Java

Item 3. private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ1. μ‹±κΈ€ν„΄(Singleton)μ΄λž€?μ‹±κΈ€ν„΄(singleton)μ΄λž€ μΈμŠ€ν„΄μŠ€λ₯Ό 였직 ν•˜λ‚˜λ§Œ 생성할 수 μžˆλŠ” 클래슀λ₯Ό λ§ν•œλ‹€. μ‹±κΈ€ν„΄μ˜ μ „ν˜•μ μΈ μ˜ˆλ‘œλŠ” 섀계 상 μœ μΌν•΄μ•Ό ν•˜λŠ” μ‹œμŠ€ν…œ μ»΄ν¬λ„ŒνŠΈλ‚˜ λ¬΄μƒνƒœ(stateless) 객체(Spring bean component)κ°€ μžˆλ‹€.μ‹±κΈ€ν„΄ 객체에도 단점이 μžˆλŠ”λ°, λ°”λ‘œ μ‹±κΈ€ν„΄ 객체λ₯Ό μ΄μš©ν•˜λŠ” ν΄λΌμ΄μ–ΈνŠΈλ₯Ό ν…ŒμŠ€νŠΈν•˜κΈ° μ–΄λ ΅λ‹€λΌλŠ” 것이닀. λ§ŒμΌ ν•΄λ‹Ή νƒ€μž…μ„ `interface`둜 μ •μ˜ν•œ λ‹€μŒ κ·Έ `interface `κ΅¬ν˜„ν•΄μ„œ λ§Œλ“  싱글턴인 경우,μ‹±κΈ€ν„΄ μΈμŠ€ν„΄μŠ€λ₯Ό `mock(κ°€μ§œ 객체)`으둜 κ΅¬ν˜„ν•˜μ—¬ λŒ€μ²΄ν•  수 μžˆμ§€λ§Œ, 그렇지 μ•Šμ€ κ²½μš°μ—λŠ” ν…ŒμŠ€νŠΈ ν•˜λŠ”λ°μ— 어렀움을 κ²ͺ을 수 μžˆλ‹€. 2. 싱글턴을 λ§Œλ“œλŠ” μ„Έ..
이 글은 곡뢀λ₯Ό ν•˜λ©΄μ„œ μ•Œκ²Œ 된 λ‚΄μš©λ“€μ„ κΈ°λ‘ν•˜λŠ” κΈ€ μž…λ‹ˆλ‹€. 였λ₯˜λ‚˜ 고쳐야 ν•  사항듀이 μžˆλ‹€λ©΄ 지적 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€! 1. μƒμ„±μžμ™€ 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œμ˜ ν•œκ³„πŸ€” μƒμ„±μžμ™€ 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œκ°€ 가지고 μžˆλŠ” μ œμ•½μœΌλ‘œ 인해 Builder νŒ¨ν„΄μ΄ νƒ„μƒν–ˆλ‹€!객체λ₯Ό 생성할 λ•Œ, 선택적 λ§€κ°œλ³€μˆ˜κ°€ λ§Žμ€ 경우 적절히 λŒ€μ‘ν•˜κΈ°κ°€ μ–΄λ ΅λ‹€.예λ₯Ό λ“€μ–΄ `μ˜μ–‘ μ„±λΆ„` ν΄λž˜μŠ€μ— `1회 μ œκ³΅λŸ‰`, `칼둜리`, `총 지방`, `트랜슀 지방`, `포화 지방`, `λ‹¨λ°±μ§ˆ`, `λ‚˜νŠΈλ₯¨` μ΄λΌλŠ” 멀버 λ³€μˆ˜κ°€ μžˆλ‹€κ³  κ°€μ •ν•˜μž.public class NutritionFacts { private final int servingSize; private final int calories; private final int transF..
이 글은 곡뢀λ₯Ό ν•˜λ©΄μ„œ μ•Œκ²Œ 된 λ‚΄μš©λ“€μ„ κΈ°λ‘ν•˜λŠ” κΈ€ μž…λ‹ˆλ‹€. 였λ₯˜λ‚˜ 고쳐야 ν•  사항듀이 μžˆλ‹€λ©΄ 지적 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€!λ§ˆμ§€λ§‰ μˆ˜μ •: 2024.05.27βœ… 1. 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œ (static factory method)λž€?클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό λ°˜ν™˜ν•˜λŠ” 정적 λ©”μ„œλ“œ(static method)λ₯Ό λ§ν•œλ‹€.λŒ€ν‘œμ μœΌλ‘œ java의 Wrapper class듀은 .valueOf()λΌλŠ” λ©”μ„œλ“œλ“€μ„ μ œκ³΅ν•˜κ³  μžˆλ‹€.Boolean.valueOf(), String.valueOf()이 κ·Έ λŒ€ν‘œμ μΈ μ˜ˆμ‹œμ΄λ©°, ν•΄λ‹Ή λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λ©΄ Wrapper class의 객체λ₯Ό 생성할 수 μžˆλ‹€.βœ… 2. 정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œμ˜ μž₯점1️⃣ 이름을 κ°€μ§ˆ 수 μžˆλ‹€.μ–΄λ–€ ν•œ 객체λ₯Ό 생성할 λ•Œ 상황에 따라 μ „λ‹¬λ˜λŠ” λ§€κ°œλ³€μˆ˜κ°€ λ‹€λ₯΄λ‹€λ©΄, ν•˜λ‚˜μ˜ μƒμ„±μžλ‘œλŠ” 이λ₯Ό..
HEY__
'λ„μ„œ πŸ“š/Effective Java' μΉ΄ν…Œκ³ λ¦¬μ˜ κΈ€ λͺ©λ‘