2μ₯μ μν μ맀 μμ€ν μ ν΅ν΄ κ°μ²΄μ§ν₯μΌλ‘ μμ±λ μ½λλ₯Ό μ€λͺ ν΄ μ€λ€. μνμ맀 μμ€ν μ λ€μ μ₯μλ κ³μ μ¬μ©λλ λλ©μΈμ΄λΌ μ΅λν μ΄ν΄νλ €κ³ λ Έλ ₯νμ§λ§ κ°μ²΄μ§ν₯μ λν κ°λ μ΄ λ무 λ§μ΄ λμμ μ΄λ €μ λ€.
νΌμ μ½μμΌλ©΄ λμΆ© μ½κ³ λλ΄κ±°λ ν¬κΈ°νμν λ° μ€ν°λλ‘ νλκΉ λκΈ°λΆμ¬(.... λλ λΆλ΄κ°?)κ° λΌμ 2μ₯λ§ μ΅μ 2~3λ²μ μ½μ κ² κ°λ€.
κ·ΈλΌ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ΄λ 무μμΈκ°?
software developmentλ νμ λ³νλ€. κ·Έλ¦¬κ³ μ΄ μ¬μ€μ λ³νμ§ μλλ€. κ°λ°μμΈ μ°λ¦¬κ° μνλ κ²μ λ³κ²½μ μ μ°νκ² λμν μ μλ μ½λ(p.35)μ΄κ³ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ νλ ₯νλ κ°μ²΄μ¬μ΄μ μμ‘΄μ±μ μ μ νκ² κ΄λ¦¬ν μ μλ λ€μν λ°©λ²μ μ 곡νλ€. 2μ₯μμλ κ·Έ λ°©λ²μΌλ‘ μμκ³Ό λ€νμ±, μΆμνμ μ μ°μ±μ λν΄ μ€λͺ νλ€.
μμμ ν΅ν΄ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€κ° μ 곡νλ λͺ¨λ μΈν°νμ΄μ€λ₯Ό λ¬Όλ €λ°μ μ μλ€. κ·Έλ¦¬κ³ μΈν°νμ΄μ€λ κ°μ²΄κ° μ΄ν΄ν μ μλ λ©μμ§μ λͺ©λ‘μ μ μνλ€. λ°λΌμ λΆλͺ¨μ μΈν°νμ΄μ€λ₯Ό λ¬Όλ €λ°μ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€κ° μμ ν λͺ¨λ λ©μμ§λ₯Ό μ΄ν΄ν μ μλ€.
κ°μ²΄ κ°μ νλ ₯μ λ©μΈμ§λ₯Ό ν΅ν΄μ μ΄λ£¨μ΄μ§κ³ λ©μμ§λ₯Ό μμ ν κ°μ²΄λ μμ¨μ μΌλ‘ λ©μμ§λ₯Ό μ²λ¦¬ν λ°©λ²μ κ²°μ νλλ° μ΄ λ°©λ²μ λ©μλλΌκ³ λΆλ₯Έλ€. λ€νμ±μ λ©μΈμ§λ₯Ό μμ ν κ°μ²΄μ ν΄λμ€μ λ°λΌ μ€μ μ€νλλ λ©μλκ° λ¬λΌμ§λ κ²μ λ§νλ€.
μΆμ ν΄λμ€λ ꡬνμ μΌλΆλ₯Ό μμ ν΄λμ€κ° μ μν μ μκ³ , μΈν°νμ΄μ€λ μμ ν΄λμ€κ° μ 체λ₯Ό κ²°μ νλ€.
μΆμνμ μ₯μ μ 1. μꡬμ¬νμ μ μ± μ λμ μμ€μμ μμ ν μ μκ³ , 2. μ€κ³κ° μ μ°ν΄μ§λ€(p.65).
μ½λλ₯Ό μ¬μ¬μ© νλ κ²½μ°μλ μμ보λ€λ ν©μ±μ μ¬μ©νλ κ²μ΄ λ λ«λ€. μ΄μ λ μμμ΄ κ°μ§λ 2κ°μ§ λ¨μ (1. μΊ‘μν μλ°, 2. μ μ°νμ§ λͺ»ν μ€κ³)λ₯Ό ν΄κ²°ν΄ μ£ΌκΈ° λλ¬Έμ΄λ€.
μΆκ°μ μΌλ‘ 곡λΆν λ΄μ©:
νλ μ κ·Όμ νμ
κ΅¬λΆ | ν΄λΉ ν΄λμ€ λ΄λΆ | κ°μ ν¨ν€μ§ λ΄ | νμ ν΄λμ€ λ΄ | μ 체 | |
+ | public | O | O | O | O |
# | protected | O | O | O | |
~ | default | O | O | ||
- | private | O |
Template Method (ν€λνΌμ€νΈ λμμΈ ν¨ν΄ 8μ₯ μ°Έμ‘°)
λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έμ μΈ μκ³ λ¦¬μ¦μ νλ¦μ ꡬννκ³ μ€κ°μ νμν μ²λ¦¬λ₯Ό μμ ν΄λμ€μκ² μμνλ λμμΈ ν¨ν΄(p.52)
λΆλͺ¨ ν΄λμ€μ μκ³ λ¦¬μ¦μ finalλ‘ μμ ν΄λμ€κ° λ³κ²½ν μ μμΌλ μκ³ λ¦¬μ¦ λ΄μ μ€ν μ μ¬μ μ ν μ μλλ‘ ν¨.
μ€λΈμ νΈ μ± μμλ finalμ μ¬μ©νμ§λ μμλ€. κ·ΈλΌ κΌ finalλ‘ ν νμκ° μλ 건κ°?
BigDecimal valueOf() Method in Java
public static Money wons(long amount) {
return new Money(BigDecimal.valueOf(amount));
}
// ν¨ν€μ§ λ·°
--> java.math Package
--> BigDecimal Class
--> valueOf() Method
μ λ ₯λ long/double κ°μ BigDecimalλ‘ λ³νν΄μ£Όλ©΄, λΉ λ°μλ©μ΄ κ°μ§κ³ μλ λ©μλ μ¬μ©μ΄ κ°λ₯νλ°, μ± μμλ λΉ λ°μλ©μ add, substract, multiplyμ compareTo, toStringμ μ¬μ©νμλ€.
λΉ λ°μλ©μ μ΄ μ΄μ κ° μμμ μ μ λ°λ λλ¬ΈμΌκΉ?
μ°Έκ³ :
BigDecimalμ λν μ λ¦¬κ° μλμ΄ μλ λΈλ‘κ·Έ
'μ€ν°λ > μ€λΈμ νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ€λΈμ νΈ] 6μ₯ 'λ©μμ§μ μΈν°νμ΄μ€' (1) | 2022.11.18 |
---|---|
[μ€λΈμ νΈ] 5μ₯ 'μ± μ ν λΉνκΈ°' (0) | 2022.11.11 |
[μ€λΈμ νΈ] 4μ₯ 'μ€κ³ νμ§κ³Ό νΈλ μ΄λμ€ν' (0) | 2022.11.04 |
[μ€λΈμ νΈ] 3μ₯ 'μν , μ± μ, νλ ₯' (0) | 2022.10.27 |
[μ€λΈμ νΈ] 1μ₯ 'κ°μ²΄, μ€κ³' (0) | 2022.10.14 |
λκΈ