Coding Planet
μ§μ° μ΄κΈ°ν (Lazy Initialization)λ? λ³Έλ¬Έ
π» Java Study/Java μ΄λ‘ μ 리
μ§μ° μ΄κΈ°ν (Lazy Initialization)λ?
jhj.sharon 2023. 8. 16. 20:00λ°μν
μ§μ° μ΄κΈ°ν (Lazy Initialization)λ κ°μ²΄, λ°μ΄ν° λλ κ³μ° λΉμ©μ΄ ν° λ¦¬μμ€μ μ΄κΈ°νλ₯Ό κ·Έκ²μ΄ μ€μ λ‘ νμν λκΉμ§ μ§μ°μν€λ νλ‘κ·Έλλ° κΈ°λ²μ λλ€. μ¦, κ°μ²΄λ λ°μ΄ν°λ₯Ό μμ±νλ μμ μ΄ λ°μνλ μκ°μ΄ μλλΌ, κ·Έκ²μ΄ μ€μ λ‘ μ κ·Όλκ±°λ μ¬μ©λ λκΉμ§ μ΄κΈ°νλ₯Ό μ°κΈ°νλ κ²μ μλ―Έν©λλ€.
μ§μ° μ΄κΈ°νμ μ£Όμ λͺ©μ
- μ±λ₯ μ΅μ ν: μ΄κΈ° λ‘λ© μκ°μ λ¨μΆνκ±°λ, λΆνμν 리μμ€ μμ±μ λ°©μ§νμ¬ μμ€ν μ μ λ°μ μΈ μ±λ₯μ ν₯μμν¨λ€.
- 리μμ€ μ μ½: μ€μ λ‘ μ¬μ©λμ§ μλ κ°μ²΄λ λ°μ΄ν°λ₯Ό μμ±νμ§ μμ λ©λͺ¨λ¦¬λ κΈ°ν 리μμ€λ₯Ό μ μ½ν μ μλ€.
μ§μ° μ΄κΈ°νμλ μ£Όμμ¬ν
- μ€λ λ μμ μ±: μ¬λ¬ μ€λ λμμ λμμ μ§μ° μ΄κΈ°ν λ‘μ§μ μ κ·Όν κ²½μ° λκΈ°ν λ¬Έμ κ° λ°μν μ μλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄μλ μ μ ν λκΈ°ν λ©μ»€λμ¦μ μ μ©ν΄μΌ νλ€.
- 볡μ‘μ± μ¦κ°: μ§μ° μ΄κΈ°ν λ‘μ§μ μ½λμ 볡μ‘μ±μ μ¦κ°μν¬ μ μλ€. λ°λΌμ μ΄ κΈ°λ²μ μ¬μ©ν λλ μ½λμ κ°λ μ±κ³Ό μ μ§ κ΄λ¦¬λ₯Ό κ³ λ €ν΄μΌ νλ€.
public class HeavyResource {
private Object resource;
public Object getResource() {
if (resource == null) {
resource = new Object(); // μ€μ λ‘λ λ¬΄κ±°μ΄ λ¦¬μμ€ μ΄κΈ°ν λ‘μ§
}
return resource;
}
}
μμ μμμμ HeavyResource ν΄λμ€λ getResource λ©μλ νΈμΆ μμλ§ resource κ°μ²΄λ₯Ό μ΄κΈ°ννλ€. λ°λΌμ HeavyResource κ°μ²΄λ₯Ό μμ±ν λλ 리μμ€ μ΄κΈ°ν λΉμ©μ΄ λ°μνμ§ μκ³ , getResource λ©μλκ° νΈμΆλ λλ§ ν΄λΉ 리μμ€κ° μ΄κΈ°νλλ€.
λ°μν
'π» Java Study > Java μ΄λ‘ μ 리' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Comments