π Chapter 10: ν₯λ―Έλ‘μ΄ μκ°
λ times()
ꡬνμ΄ κ±°μ λΉμ·νκΈ° νμ§λ§ μμ§ μμ ν λμΌνμ§λ μλ€.
// Franc
Money times(int multiplier) {
return Money.franc(amount * multiplier);
}
// Dollar
Money times(int multiplier) {
return Money.dollar(amount * multiplier);
}
μ΄ λμ λμΌνκ² λ§λ€κΈ° μν λͺ λ°±ν λ°©λ²μ΄ μλ€. λλ‘λ μ μ§νκΈ° μν΄μ λ¬Όλ¬μμΌ ν λλ μλ λ²μ΄λ€. ν©ν 리 λ©μλλ₯Ό μΈλΌμΈμν€λ©΄ μ΄λ¨κΉ?
// Franc
Money times(int multiplier) {
return new Franc(amount * multiplier, "CHF");
}
// Dollar
Money times(int multiplier) {
return new Dollar(amount * multiplier, "USD");
}
Franc
μμλ μΈμ€ν΄μ€ λ³μ currency
κ° νμ CHF
μ΄λ―λ‘ λ€μκ³Ό κ°μ΄ μΈ μ μλ€.
// Franc
Money times(int multiplier) {
return new Franc(amount * multiplier, currency);
}
μ λμκ°λ€. Dollar
λ λ§μ°¬κ°μ§λ‘ κ³ μΉ μ μλ€.
Money times(int multiplier) {
return new Dollar(amount * multiplier, currency);
}
Franc
μ κ°μ§μ§ Money
λ₯Ό κ°μ§μ§κ° μ λ§λ‘ μ€μν μ¬μ€μΈκ°? μμ€ν
μ λν΄ μλ μ§μμ κΈ°λ°μΌλ‘ μ‘°μ¬μ€λ½κ² μκ°ν΄λ³΄μ ν λ¬Έμ λ€. νμ§λ§ μ°λ¦¬μκ² κΉλν μ½λμ κ·Έ μ½λκ° μ μλν κ±°λΌλ λ―Ώμμ μ€ μ μλ ν
μ€νΈ μ½λλ€μ΄ μλ€. λͺ λΆ λμ κ³ λ―Όνλ λμ κ·Έλ₯ μμ νκ³ ν
μ€νΈλ₯Ό λλ €μ μ»΄ν¨ν°μκ² μ§μ λ¬Όμ΄λ³΄μ. TDDλ₯Ό κ°λ₯΄μΉλ€λ³΄λ©΄ νμ μ΄λ° μν©μ λ³΄κ² λλ€. μ»΄ν¨ν°λΌλ©΄ 10μ΄μμ 15μ΄ μ¬μ΄μ λλ΅ν μ μλ λ¬Έμ λ₯Ό λκ³ μ΅κ³ μ μννΈμ¨μ΄ μμ§λμ΄λ€μ΄ 5λΆμμ 10λΆ λμ κ³ λ―Όνκ³€ νλ€. κ°λμ κ·Έλ₯ μ»΄ν¨ν°μκ² λ¬Όμ΄λ³΄λ κ²λ μ’λ€.
μ€νμ μ€ννκΈ° μν΄ Franc.times()
κ° Money
λ₯Ό λ°ννλλ‘ κ³ μ³λ³΄μ.
// Franc
Money times(int multiplier) {
return Money(amount * multiplier, currency);
}
μ»΄νμΌλ¬κ° Money
λ₯Ό μ½ν¬λ¦¬νΈ ν΄λμ€λ‘ λ°κΏμΌ νλ€κ³ λ§νλ€.
// Money
class Money {
Money times(int amount) {
return null;
}
}