π Chapter 11: λͺ¨λ μ μ κ·Όμ
λ νμ ν΄λμ€ Dollar
μ Franc
μλ λ¬λ μμ±μλ°μ μλ€. λ¨μ§ μμ±μ λλ¬Έμ νμ ν΄λμ€κ° μμ νμλ μκΈ° λλ¬Έμ νμ ν΄λμ€λ₯Ό μ κ±°νλ κ² μ’κ² λ€.
μ½λμ μλ―Έλ₯Ό λ³κ²½νμ§ μμΌλ©΄μλ νμ ν΄λμ€μ λν μ°Έμ‘°λ₯Ό μμ ν΄λμ€μ λν μ°Έμ‘°λ‘ λ³κ²½ν μ μλ€. μΌλ¨ Money.franc()
μ κ³ μΉμ.
// Money
static Money franc(int amount) {
return new Money(amount, "CHF");
}
κ·Έλ¦¬κ³ Money.dollar()
λ.
static Money dollar(int amount) {
return new Money(amount, "USD");
}
μ΄μ Dollar
μ λν μ°Έμ‘° νλλ λ¨μ μμ§ μμΌλ―λ‘ Dollar
λ₯Ό μ§μΈ μ μκ² λλ€. λ°λ©΄μ Franc
μ μ°λ¦¬κ° μμ±νλ ν
μ€νΈ μ½λμμ μμ§ μ°Έμ‘°νλ€.
public void testDifferentClassEquality() {
assertTrue(new Money(10, "CHF").equals(
new Franc(10, "CHF")
));
}
μ΄ ν μ€νΈλ₯Ό μ§μλ λ μ λλ‘ λ€λ₯Έ κ³³μμ λμΉμ± ν μ€νΈλ₯Ό μΆ©λΆν νκ³ μλκ°? λ€λ₯Έ λμΉμ± ν μ€νΈλ₯Ό νλ² λ³΄μ.
public void testEquality() {
assertTrue(Money.dollar(5).equals(Money.dollar(5)));
assertFalse(Money.dollar(5).equals(Money.dollar(6)));
assertTrue(Money.franc(5).equals(Money.franc(5)));
assertFalse(Money.franc(5).equals(Money.franc(6)));
assertFalse(Money.franc(5).equals(Money.dollar(5)));
}
μΆ©λΆν ν μ€νΈμΈ κ² κ°λ€. μ¬μ€ μ’ κ³Όνλ€. μΈ λ²μ§Έμ λ€ λ²μ§Έ λ¨μΈμ 첫 λ²μ§Έ, λ λ²μ§Έ λ¨μΈκ³Ό μ€λ³΅λλ―λ‘ μ§μ°λ κ² μ’κ² λ€.
public void testEquality() {
assertTrue(Money.dollar(5).equals(Money.dollar(5)));
assertFalse(Money.dollar(5).equals(Money.dollar(6)));
assertFalse(Money.franc(5).equals(Money.dollar(5)));
}
ν΄λμ€ λμ currency
λ₯Ό λΉκ΅νλλ‘ κ°μνλ ν
μ€νΈ μ½λλ μ¬λ¬ ν΄λμ€κ° μ‘΄μ¬ν λλ§ μλ―Έ μλ€. Franc
ν΄λμ€λ₯Ό μ κ±°νλ €λ μ€μ΄κΈ° λλ¬Έμ Franc
μ΄ μμ κ²½μ°μ μμ€ν
μ΄ μλνλμ§ νμΈνλ ν
μ€νΈλ λμμ΄ λκ³ μ€νλ € μ§μ΄ λλ€. Franc
μ ν¨κ» testDifferentClassEquality
λ₯Ό 보λ΄λ²Όλ¦¬μ.