π»
Java νλ‘κ·Έλλ° - κ°μ²΄νμ νμΈ(instanceof), μ±κΈν€ ν¨μ(Singleton) λ³Έλ¬Έ
Java νλ‘κ·Έλλ° - κ°μ²΄νμ νμΈ(instanceof), μ±κΈν€ ν¨μ(Singleton)
λν¨λ 2020. 5. 11. 14:57κ°μ²΄ νμ νμΈ(instanceof)
κ°μ νμ λ³νμ μμ νμ μ΄ λΆλͺ¨ νμ μΌλ‘ λ³νλμ΄ μλ μνμμλ§ κ°λ₯νκΈ° λλ¬Έμ λ€μκ³Ό κ°μ΄ λΆλͺ¨ νμ μ λ³μκ° λΆλͺ¨ κ°μ²΄λ₯Ό μ°Έμ‘°ν κ²½μ° μμ νμ μΌλ‘ λ³νν μ μλ€.
Parent parent = new Parent();
Child child = (Child) Parent; //κ°μ νμ
λ³νμ ν μ μλ€.
Parent parent = new Child(); //upCasting
Child child = (Child) Parent; //κ°μ νμ
λ³νμ ν μ μλ€. downCasting
κ·Έλ λ€λ©΄ λΆλͺ¨ λ³μκ° μ°Έμ‘°νλ κ°μ²΄κ° λΆλͺ¨ κ°μ²΄μΈμ§ μμ κ°μ²΄μΈμ§ μ΄λ»κ² νμΈν κΉ?
μ΄λ€ κ°μ²΄κ° μ΄λ€ ν΄λμ€μ μΈμ€ν΄μ€μΈμ§ νμΈνλ €λ©΄ instanceof μ°μ°μλ₯Ό μ¬μ©ν μ μλ€.
shape 맀κ°λ³μκ° μ°Έμ‘°νλ κ°μ²΄κ° LineμΈμ§, μ¦ Line νμ μΌλ‘ λ³νμ΄ κ°λ₯νμ§ νμΈνμ¬ κ°μ νμ λ³νμ ν΄μ€λ€.
μ 리νμλ©΄, κ°μ νμ λ³νμ νκΈ° μ μ instanceof μ°μ°μλ‘ λ³νμν¬ νμ μ κ°μ²΄μΈμ§ μ‘°μ¬ν΄μ μλͺ»λ 맀κ°κ°μΌλ‘ μΈν΄ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ κ²μ λ§μμΌνλ€.
μ±κΈν€(Singleton)
μμ±μκ° μ¬λ¬ μ°¨λ‘ νΈμΆλλλΌλ μ€μ λ‘ μμ±λλ κ°μ²΄λ νλμ΄κ³ μ΅μ΄ μμ± μ΄νμ νΈμΆλ μμ±μλ μ΅μ΄μ μμ±μκ° μμ±ν κ°μ²΄λ₯Ό 리ν΄νλ€.
λ©μλμ μΈμ€ν΄μ€ λ³μ λͺ¨λ staticμΌλ‘ μ μΈνλ€.
κΈ°λ³Έμμ±μλ₯Ό private λ₯Ό μ¬μ©νμ¬ μμ±μ λΆκ°λ₯νκ² νκ³ getInstanceλ₯Ό ν΅ν΄μλ§ μμ±μ΄ κ°λ₯νλ€. getInstanceλ λ΄λΆμ μΌλ‘ μμ±λμ§ μμλ€λ©΄ μμ±νκ³ , κΈ°μ‘΄μ μμ±λ κ°μ΄ μ‘΄μ¬νλ€λ©΄ μμ±λ μΈμ€ν΄μ€λ₯Ό 리ν΄νλ ννλ‘ νλ‘κ·Έλ¨ μ λ°μ κ±Έμ³ νλμ μΈμ€ν΄μ€λ₯Ό μ μ§νλ€.