β’
instanceof
instanceofλ?
λΆλͺ¨λ₯Ό μμν΄μ λ§λ€μ΄μ§ μμ κ°μ²΄κ° μ¬λ¬ νμ
μΈ κ²½μ°μ νΉμ ν΄λμ€κ° λ§λμ§ νμΈνκΈ° μν΄μ μ¬μ©νλ€.
if(sun instanceof Parents){
return;
}
Java
볡μ¬
μ΄κ±° κΉμ§ μκ² λλ° κ·ΈλΌ μ¬μ©νλ κ²λ μκ² λλ° λκ° λ¬Έμ μΌ?
instanceof λ§κ³ λ€νμ±μ μ΄μ©νμ¬ κ°μ²΄μκ² λ¬Όμ΄λ³΄λ κ²? κ·Έκ²μ΄ λ μ’μ κ² κ°λ€
μ?
μ΄μ λ λͺκ°μ§ μ‘΄μ¬νλ€.
μΊ‘μν
κ°μ²΄μ§ν₯μμ λ§νλ μΊ‘μνλ κ°μ²΄κ° κ°μ§ μνλ νμλ₯Ό λ€λ₯Έ μ΄κ° μ¬μ©νκ±°λ λ³΄μ§ λͺ»νλλ‘ μ¨κΈ°λ κ²μ μλ―Ένλ€. νμ§λ§ instanceofλ₯Ό μ¬μ©νλ κ²½μ°, κ° κ°μ²΄κ° 무μμΈμ§, μ΄λ€ μ μλ₯Ό λλ €μ£Όμ΄μΌνλμ§ λΆνμν μΈλΆμ κ°μ²΄κ° κ·Έ μ 보λ₯Ό μκ² λλ κ²μ΄λ€. λλ¬Έμ μΊ‘μνκ° κΉ¨μ§λ€λ κ²μ μ μ μλ€.
μ°λ¦¬λ κ° κ°μ²΄κ° κ°μ§ μ±
μκ³Ό μν μ λΆλ¦¬ν΄μ£Όκ³ , μ΄λ‘ μΈν΄ μ μ§λ³΄μ, νμ₯μ μμ΄ νΈλ¦¬ν¨μ μ»κΈ° μν΄ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νλ€. μΊ‘μνκ° λ³΄μ₯λμ§ μμΌλ©΄ κ·Έ μλ―Έκ° μμ΄μ§λ€. instanceofμ μ¬μ©μ μ§μν΄μΌνλ κ°μ₯ μ°μ μ μΈ μ΄μ
OCP
λ€νμ±μ μ΄μ©νλ©΄ μλ‘μ΄ κ°μ²΄λ₯Ό λ§λ€κ³ κ·Έ κ°μ²΄μ ꡬννλ©΄ λλ λ°λ©΄μ instanceofλ₯Ό μ¬μ©νλ κ²½μ° μλ‘μ΄ λ©μλλ₯Ό λ§λ€μ΄μ£ΌκΈ° μν΄ μ¬μ©νκ³ μλ λͺ¨λ ν¨μλ₯Ό κ³ μ³μΌνλ€. μ¦, OCP(κ°λ°©-νμ μμΉ)μ μλ°λλ€(μ¬λ΄μΌλ‘ ν λΉμ μ€νλ§μμλ μ΄λ° λΉμ·ν λ§μ΄ λμλ€. μ€νλ € νμΈνλ €λ 주체μ κ·Έ νμΈ λ°©λ²μ λͺ
μν΄μ£Όλ κ²μ΄ μ€νλ € λ μ’μ μ μλ€.).
SRP
κ³Όλν μ±
μμ΄ λͺ°λ¦΄ μ μλ€. λ¨μν νλμ νμ
μ νμΈνλ κ²μ΄ μλλΌ μ¬λ¬νμ
μ κ²μ¬νλ€λ©΄ κ·Έ κ°μ²΄μ κ²μ¬ μλ¬΄κ° λμ΄λλ κ²μ΄λ€.
μ±λ₯(μ§μ μ μΌλ‘ νμΈνμ§ λͺ»νλ€.)
νμ§λ§ μ μ 리λ κΈμ ν΅νμ¬ νμΈνλ€.
λμ κ²°λ‘
μ¬μ©μ ν΄λ λλ€. λ¨, ν κ°μ²΄μ κ²μ¬κ° μλ μ¬λ¬ κ°μ²΄μ κ²μ¬λ₯Ό ν΄μΌ νκ±°λ, λ λ€λ₯Έ κ°μ²΄κ° μΆκ°λ μ¬μ§κ° μ‘΄μ¬νλ€λ©΄ κ΅³μ΄ instanceofλ₯Ό μ¬μ©ν κ²μ΄ μλλΌ λ€νμ±μ μ΄μ©νμ¬ κ°μ²΄ μμ μ΄ μμ μΈμ§ νλ³ν΄μ£Όκ² λ§λ€μ΄μ£Όλ isXXX()λ©μλλ₯Ό λ§λλ νΈμ΄ μ’μ κ² κ°λ€.







