π λͺ©μ°¨.
5. νμ λ§μΆκΈ°
.μ μ ν ν κΈΈμ΄λ₯Ό μ μ§νλΌ
.μ λ¬Έ κΈ°μ¬μ²λΌ μμ±νλΌ
.κ°λ μ λΉ ν(μ€ λ°κΏ)μΌλ‘ λΆλ¦¬νλΌ
.μΈλ‘ λ°μ§λ
.μμ§ κ±°λ¦¬
.λ³μ μ μΈ
.μΈμ€ν΄μ€ λ³μ
.μ’ μ ν¨μ
.κ°λ μ μ μ¬μ±
.κ°λ‘ νμ λ§μΆκΈ°
.κ°λ‘ 곡백과 λ°μ§λ
.λ€μ¬μ°κΈ° 무μνκΈ°
.ν κ·μΉ
βοΈ λ΄μ©.
5. νμ λ§μΆκΈ°
μ½λ νμμ μ€μνλ€! λ무 μ€μν΄μ 무μνκΈ° μ΄λ ΅λ€.
λ무 μ€μνκΈ° λλ¬Έμ μ΅ν΅μ± μμ΄ λ§Ήλͺ©μ μΌλ‘ λ°λ₯΄λ©΄ μ λλ€. μ½λ νμμ μμ¬μν΅μ μΌνμ΄λ€.
μμ¬μν΅μ μ λ¬Έ κ°λ°μμ μΌμ°¨μ μΈ μ무λ€.
μ΄μ©λ©΄ 'λμκ°λ μ½λκ°'κ° μ λ¬Έ κ°λ°μμ μΌμ°¨μ μΈ μλ¬΄λΌ μ¬κΈΈμ§λ λͺ¨λ₯΄μ§λ§ μ± μ μ½μΌλ©° μκ°μ΄ λ°λμκΈ°λ₯Ό λ°λλ€.
μ€λ ꡬνν κΈ°λ₯μ΄ λ€μ λ²μ μμ λ°λ νλ₯ μ μμ£Ό λλ€. κ·Έλ°λ° μ€λ ꡬνν μ½λμ κ°λ μ±μ μμΌλ‘ λ°λ μ½λμ νμ§μ μ§λν μν₯μ λ―ΈμΉλ€. μ€λ μκ°μ΄ μ§λ μλ μ½λμ νμ μ λ μ΄μ μ°Ύμ보기 μ΄λ €μΈ μ λλ‘ μ½λκ° λ°λμ΄λ 맨 μ²μ μ‘μλμ ꡬν μ€νμΌκ³Ό κ°λ μ± μμ€μ μ μ§λ³΄μ μ©μ΄μ±κ³Ό νμ₯μ±μ κ³μ μν₯μ λ―ΈμΉλ€.
μλ μ½λλ μ¬λΌμ§μ§λΌλ κ°λ°μμ μ€νμΌκ³Ό κ·μ¨μ μ¬λΌμ§μ§ μλλ€.
.μ μ ν ν κΈΈμ΄λ₯Ό μ μ§νλΌ.
μΌλ°μ μΌλ‘ ν° νμΌλ³΄λ€ μμ νμΌμ΄ μ΄ν΄νκΈ° μ½λ€.
.μ λ¬Έ κΈ°μ¬μ²λΌ μμ±νλΌ
λ
μλ μμμ μλλ‘ κΈ°μ¬λ₯Ό μ½λλ€ κΈ°μ¬μ κ²½μ° μ΅μλ¨μ κΈ°μ¬λ₯Ό μμ½νλ 'νμ 'κ° λμ¨λ€.
μ λ΄λ €κ°λ©΄μ μ½μμλ‘ μΈμΈν λ΄μ©λ€μ΄ λμ€κ² λλ€.
μμ€ νμΌλ λΉμ·νκ² μμ±νλ€. μ΄λ¦μ κ°λ¨νλ©΄μλ μ€λͺ μ΄ κ°λ₯νκ² μ§λλ€.
μ΄λ¦λ§μΌλ‘ μ¬λ°λ₯Έ λͺ¨λμ μ΄ν΄λ³΄κ³ μλμ§ μλμ§λ₯Ό νλ¨ν μ λλ‘ μ κ²½ μ¨μ μ§λλ€.
첫 λΆλΆμ κ³ μ°¨μ κ°λ
κ³Ό μκ³ λ¦¬μ¦μ μ€λͺ
νλ€. μλλ‘ λ΄λ €κ°μλ‘ μλλ₯Ό μΈμΈνκ² λ¬μ¬νλ€.
λ§μ§λ§μλ κ°μ₯ μ μ°¨μ ν¨μμ μΈλΆ λ΄μμ΄ λμ¨λ€.
.κ°λ
μ λΉ ν(μ€ λ°κΏ)μΌλ‘ λΆλ¦¬νλΌ
κ±°μ λͺ¨λ μ½λλ μΌμͺ½μμ μ€λ₯Έμͺ½μΌλ‘ κ·Έλ¦¬κ³ μμμ μλλ‘ μ½νλ€.
κ° νμ μμμ΄λ μ μ λνλ΄κ³ , μΌλ ¨μ ν λ¬Άμμ μκ²°λ μκ° νλλ₯Ό νννλ€.
μκ° μ¬μ΄μλ λΉ νμ λ£μ΄ λΆλ¦¬ν΄μΌ λ§λ
νλ€.
λΉ νμ λΊ κ²½μ° μ½λ κ°λ μ±μ΄ νμ νκ² λ¨μ΄μ Έ μ’μ§ μλ€. λ¨μ μ€ λ°κΏ νλλ‘ μμμ λλ μ μλ€.
.μΈλ‘ λ°μ§λ
μ€ λ°κΏμ΄ κ°λ μ λΆλ¦¬νλ€λ©΄ μΈλ‘ λ°μ§λλ μ°κ΄μ±μ μλ―Ένλ€. μ¦, μλ‘ λ°μ ν μ½λ νμ μΈλ‘λ‘ κ°κΉμ΄ λμ¬μΌ νλ€λ λ»μ΄λ€.
// X
/**
* 리ν¬ν° 리μ€λμ ν΄λμ€ μ΄λ¦
*/
private String m_className;
/**
* 리ν¬ν° 리μ€λμ μμ±
*/
private List<Property> m_properties = new ArrayList<Property>();
// O
private String m_className;
private List<Property> m_properties = new ArrayList<Property>();
.μμ§ κ±°λ¦¬
μμ€ν
μ΄ λ¬΄μμ νλμ§ μ΄ν΄νκ³ μΆμλ°, μ‘°κ°μ‘°κ° μ΄λμ μλμ§ μ°Ύκ³ κΈ°μ΅νλλΌ μκ°κ³Ό λ
Έλ ₯μ μλΉν κ²½νμ΄ μμ κ²μ΄λ€.
μλ‘ λ°μ ν κ°λ
μ μΈλ‘λ‘ κ°κΉμ΄ λ¬μΌ νλ€. λ¬Όλ‘ λ κ°λ
μ΄ μλ‘ λ€λ₯Έ νμΌμ μνλ€λ©΄ κ·μΉμ΄ ν΅νμ§ μλλ€.
νμ§λ§ νλΉν κ·Όκ±°κ° μλ€λ©΄ μλ‘ λ°μ ν κ°λ
μ ν νμΌμ μν΄μΌ λ§λ
νλ€. μ΄κ² λ°λ‘ protected λ³μλ₯Ό νΌν΄μΌ νλ μ΄μ μ€ νλλ€.
κ°μ νμΌμ μν μ λλ‘ λ°μ ν λ κ°λ
μ μΈλ‘ κ±°λ¦¬λ‘ μ°κ΄μ±μ νννλ€.
μ¬κΈ°μ μ°κ΄μ±μ΄λ ν κ°λ
μ μ΄ν΄νλ λ° λ€λ₯Έ κ°λ
μ΄ μ€μν μ λμ΄λ€. μ°κ΄μ±μ΄ κΉμ λ κ°λ
μ΄ λ©λ¦¬ λ¨μ΄μ Έ μμΌλ©΄ μ½λλ₯Ό μ½λ μ¬λμ΄ μμ€νμΌκ³Ό ν΄λμ€λ₯Ό μ¬κΈ°μ κΈ° λ€μ§κ² λλ€.
.λ³μ μ μΈ
λ³μλ μ¬μ©νλ μμΉμ μ΅λν κ°κΉμ΄ μ μΈνλ€.
μ°λ¦¬κ° λ§λ ν¨μλ λ§€μ° μ§§μΌλ―λ‘ μ§μ λ³μλ κ° ν¨μ 맨 μ²μμ μ μΈνλ€.
루νλ₯Ό μ μ΄νλ λ³μλ νν 루ν λ¬Έ λ΄λΆμ μ μΈνλ€.
μμ£Ό λλ¬Όμ§λ§ λ€μ κΈ΄ ν¨μμμ λΈλ‘ μλ¨μ΄λ 루ν μ§μ μ λ³μλ₯Ό μ μΈνλ μ¬λ‘λ μλ€.
.μΈμ€ν΄μ€ λ³μ
μΈμ€ν΄μ€ λ³μλ ν΄λμ€ λ§¨ μ²μμ μ μΈνλ€. λ³μ κ°μ μΈλ‘λ‘ κ±°λ¦¬λ₯Ό λμ§ μλλ€.
μ μ€κ³ν ν΄λμ€λ λ§μ(νΉμ λλ€μ) ν΄λμ€ λ©μλκ° μΈμ€ν΄μ€ λ³μλ₯Ό μ¬μ©νκΈ° λλ¬Έμ΄λ€.
.μ’
μ ν¨μ
ν ν¨μκ° λ€λ₯Έ ν¨μλ₯Ό νΈμΆνλ€λ©΄ λ ν¨μλ μΈλ‘λ‘ κ°κΉμ΄ λ°°μΉνλ€.
λν κ°λ₯νλ€λ©΄ νΈμΆνλ ν¨μλ₯Ό νΈμΆλλ ν¨μλ³΄λ€ λ¨Όμ λ°°μΉνλ€. κ·Έλ¬λ©΄ νλ‘κ·Έλ¨μ΄ μμ°μ€λ½κ² μ½νλ€.
κ·μΉμ μΌκ΄μ μΌλ‘ μ μ©νλ€λ©΄ λ
μλ λ°©κΈ νΈμΆν ν¨μκ° μ μ νμ μ μλ리λΌλ μ¬μ€μ μμΈ‘νλ€.
.κ°λ
μ μ μ¬μ±
μ΄λ€ μ½λλ μλ‘ λμ΄λΉκΈ΄λ€. κ°λ μ μΈ μΉνλκ° λκΈ° λλ¬Έμ΄λ€. μΉνλκ° λμμλ‘ μ½λλ₯Ό κ°κΉμ΄ λ°°μΉνλ€.
μΉνλκ° λμ μμΈμ μ¬λ¬ κΈ°μμ΄λ€.
μμ 보μλ―μ΄, ν ν¨μκ° λ€λ₯Έ ν¨μλ₯Ό νΈμΆν΄ μκΈ°λ μ§μ μ μΈ μ’
μμ±μ΄ ν μμ΄λ©°, λ³μμ κ·Έ λ³μλ₯Ό μ¬μ©νλ ν¨μλ ν μλ€. κ·Έ μΈμλ AssertTrue, AssertFalseμ κ°μ΄ λΉμ·ν λμμ μννλ μΌκ΅°μ ν¨μκ° μ’μ μμ΄λ€
.κ°λ‘ νμ λ§μΆκΈ°
κ°μΈμ μΌλ‘ 120μ μ λμ νκΈΈμ΄λ₯Ό μ ννλ€.
.κ°λ‘ 곡백과 λ°μ§λ
κ°λ‘λ‘λ 곡백μ μ¬μ©ν΄ λ°μ ν κ°λ
κ³Ό λμ¨ν κ°λ
μ νννλ€.
μΈμ μ¬μ΄μλ 곡백μΌλ‘ λ³κ°λ‘ 보μ΄κ² νλ€.
.λ€μ¬μ°κΈ° 무μνκΈ°
λλ‘λ κ°λ¨ν ifλ¬Έ, 짧μ while λ¬Έ, 짧μ ν¨μμμ λ€μ¬ μ°κΈ° κ·μΉμ 무μνκ³ ν μ νΉμ΄ μκΈ΄λ€.
μ΄λ΄ κ²½μ° μμ μΌλ‘ λμκ° λ€μ¬ μ°κΈ°λ₯Ό λ£μ΄ κ·μΉμ μ μ§νλ€.
.ν κ·μΉ
νλ‘κ·Έλλ¨ΈλΌλ©΄ κ°μ μ νΈνλ κ·μΉμ΄ μλ€. νμ§λ§ νμ μνλ€λ©΄ μμ μ΄ μ νΈν΄μΌ ν κ·μΉμ λ°λ‘ ν κ·μΉμ΄λ€.
νμ ν κ°μ§ κ·μΉμ ν©μν΄μΌ νλ€. κ·Έλ¦¬κ³ λͺ¨λ νμμ κ·Έ κ·μΉμ λ°λΌμΌ νλ€. κ·ΈλμΌ μννΈμ¨μ΄κ° μΌκ΄μ μΈ μ€νμΌμ 보μΈλ€. κ°κ°μΈμ΄ λ°λ‘κ΅λ°₯μ²λΌ λ§λλ‘ μ§ λλ μ½λλ νΌν΄μΌ νλ€.
μ’μ μννΈμ¨μ΄ μμ€ν
μ μ½κΈ° μ¬μ΄ λ¬Έμλ‘ μ΄λ€μ§λ€λ μ¬μ€μ κΈ°μ΅νκΈ° λ°λλ€. μ€νμΌμ μΌκ΄μ μ΄κ³ 맀λλ¬μμΌ νλ€. ν μμ€ νμΌμμ λ΄€λ νμμ΄ λ€λ₯Έ μμ€ νμΌμλ μ°μ΄λ¦¬λΌλ μ λ’°κ°μ λ
μμκ² μ€μΌ νλ€. μ¨κ° μ€νμΌμ λ€μμ΄ μμ€ μ½λλ₯Ό νμ μ΄μμΌλ‘ 볡μ‘νκ² λ§λλ μ€μλ λ°λμ νΌνλ€.
π λλμ .
- κ°κ°μ νμμ λ§μΆλ κ·μΉμ λν΄ λ§μ΄ μκ² λ κ² κ°λ€.
- κ°μ₯ ν¬κ² μλΏμ λΆλΆμΌλ‘ 'ν κ·μΉ'μΈλ° κ²°κ΅ ν λ΄μ μν΄μ§ κ²μ΄λΌλ©΄ ν κ·μΉμ λ°λΌμΌ νλ κ² μ³μ κ² κ°λ€.
νμ¬ κ°κ°μΈ λ°λ‘κ΅λ°₯μ²λΌ λ§λλ‘ μ§κ³ μλ μν©μ μν΄μκΈ° λλ¬Έμ κ°μ₯ μλΏμλ€...
'Study > CleanCode' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Study][CleanCode - 2] 7. μ€λ₯ μ²λ¦¬ (0) | 2022.07.16 |
---|---|
[Study][CleanCode - 2] 6. κ°μ²΄μ μλ£κ΅¬μ‘° (0) | 2022.07.14 |
[Study][CleanCode - 1] 4. μ£Όμ (0) | 2022.07.11 |
[Study][CleanCode - 1] 3. ν¨μ (0) | 2022.07.01 |
[Study][CleanCode - 1] 2. μλ―Έ μλ μ΄λ¦ (0) | 2022.06.28 |