Item 3. private μμ±μλ μ΄κ±° νμ
μΌλ‘ μ±κΈν΄μμ 보μ¦νλΌ1. μ±κΈν΄(Singleton)μ΄λ?μ±κΈν΄(singleton)μ΄λ μΈμ€ν΄μ€λ₯Ό μ€μ§ νλλ§ μμ±ν μ μλ ν΄λμ€λ₯Ό λ§νλ€. μ±κΈν΄μ μ νμ μΈ μλ‘λ μ€κ³ μ μ μΌν΄μΌ νλ μμ€ν
μ»΄ν¬λνΈλ 무μν(stateless) κ°μ²΄(Spring bean component)κ° μλ€.μ±κΈν΄ κ°μ²΄μλ λ¨μ μ΄ μλλ°, λ°λ‘ μ±κΈν΄ κ°μ²΄λ₯Ό μ΄μ©νλ ν΄λΌμ΄μΈνΈλ₯Ό ν
μ€νΈνκΈ° μ΄λ ΅λ€λΌλ κ²μ΄λ€. λ§μΌ ν΄λΉ νμ
μ `interface`λ‘ μ μν λ€μ κ·Έ `interface `ꡬνν΄μ λ§λ μ±κΈν΄μΈ κ²½μ°,μ±κΈν΄ μΈμ€ν΄μ€λ₯Ό `mock(κ°μ§ κ°μ²΄)`μΌλ‘ ꡬννμ¬ λ체ν μ μμ§λ§, κ·Έλ μ§ μμ κ²½μ°μλ ν
μ€νΈ νλλ°μ μ΄λ €μμ κ²ͺμ μ μλ€. 2. μ±κΈν΄μ λ§λλ μΈ..
λμ π/Effective Java
μ΄ κΈμ 곡λΆλ₯Ό νλ©΄μ μκ² λ λ΄μ©λ€μ κΈ°λ‘νλ κΈ μ
λλ€. μ€λ₯λ κ³ μ³μΌ ν μ¬νλ€μ΄ μλ€λ©΄ μ§μ λΆνλ립λλ€! 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οΈβ£ μ΄λ¦μ κ°μ§ μ μλ€.μ΄λ€ ν κ°μ²΄λ₯Ό μμ±ν λ μν©μ λ°λΌ μ λ¬λλ 맀κ°λ³μκ° λ€λ₯΄λ€λ©΄, νλμ μμ±μλ‘λ μ΄λ₯Ό..