μ΄λ² μ£Ό κ³Όμ λ λ‘λ κ²μμ ꡬννλ κ²μ΄μλλ°, μ§λ μ£Όλ³΄λ€ κ΅¬νν΄μΌνλ κΈ°λ₯λ λ§μμ‘κ³ , μ§μΌμΌ ν κ·μΉλ λμ΄λλ©΄μ μ λ» μμνκΈ°κ° μ΄λ €μ λ€.
μ§λ μ£Όμλ μ½λλ₯Ό μμ±νλ κ³Όμ μμ μΆλ ₯ λ¬Έμμ΄μ μμλ‘ μ΄μ©νμ§ μκ³ κ·Έλλ‘ νλμ½λ© νλ μ κ³Ό μμΈ μΌμ΄μ€λ₯Ό λμ³€λ€λ μ μ μΈμ§νλ©΄μ μ΄λ² μ£Ό κ³Όμ μμλ κ°μ μ€μλ₯Ό λ°λ³΅νμ§ μκ³ μ νλ€.
λ°°μ΄ μ
Getter λ©μλ μ¬μ© μ΅μν
μΈλΆμμ κ°μ²΄μ λ°μ΄ν°λ₯Ό λ°μ λ€λ₯΄κ² λ³νν¨μΌλ‘μ¨ κ°μ²΄ μ§ν₯μ μμΉ μ€ νμ₯μλ μ΄λ €μμΌλ λ³κ²½μλ λ«νμμ΄μΌ νλ€λ κ°λ°©-νμ μμΉμ μλ°ν μ¬μ§κ° μκΈ° λλ¬Έμ getter λ©μλλ₯Ό μ΅μννλ €κ³ λ Έλ ₯νλ€.
μ΄μ μλ getter μ¬μ©μ μ§μν΄μΌνλ€λ κ²μ λ€μ΄λ³Έ μ μ΄ μμ§λ§, λΉμ₯ μ½λλ₯Ό μμ±νλ λ° κΈκΈνμμ νκ³λ‘ μ΄λ»κ² μ€μν΄μΌν μ§μ λν κ³ λ―Όμ λ―Έλ€μλ€κ° μ μ©ν΄λ³΄κ² λμλ€.
μλ₯Ό λ€μ΄, Lotto ν΄λμ€ λ΄ private μ κ·Ό μ μ΄μλ₯Ό κ°μ§ List λ©€λ² λ³μκ° μμ λ ν΄λΉ λ³μλ₯Ό μ΄μ©ν΄ λ‘μ§μ μμ±ν΄μΌ νλ€κ³ κ°μ ν΄λ³΄μ.
νμλΌλ©΄ private λ©€λ² λ³μλ₯Ό λ°ννλ getter λ©μλλ₯Ό λ§λ€μ΄ μ΄μ©νκ² μ§λ§, λ체ν μ μλ λ°©λ²μ λν΄ κ³ λ―Όμ ν΄λ³΄μκ³ λ κ°μ§ λ°©λ²μ μ μ©νμλ€.
1. Collections.unmodifiableList()λ₯Ό μ΄μ©ν΄ μμ λΆκ°λ₯ν 리μ€νΈ λ°ν
ν΄λμ€ λ΄λΆμμ λμ ν μ²λ¦¬ν μ μλ€κ³ νλ¨λμμ λ μ΄μ©ν λ°©λ²μΌλ‘, Listλ₯Ό μμ λΆκ°λ₯νλλ‘ λ§λ λ€ λ°νν¨μΌλ‘μ¨ κΈ°μ‘΄μ λ°©λ²μ 보μνκ³ μ νμλ€.
2. getter λ©μλλ₯Ό privateμΌλ‘ λ³κ²½νμ¬ ν΄λμ€ λ΄λΆμμλ§ μ¬μ©νλλ‘ ν¨
λ©€λ² λ³μμ λ°μ΄ν°λ₯Ό μ΄μ©ν΄μΌνλ κ²½μ° ν΄λΉ ν΄λμ€ λ΄λΆμμ μμ μ μ²λ¦¬νλλ‘ λ©μλλ₯Ό λ§λ¦μΌλ‘μ¨ μΈλΆλ‘ λ°μ΄ν°λ₯Ό λκΈ°μ§ μλλ‘ νμλ€. μ΄λ κ² λ³κ²½νλ©΄μ λ©€λ² λ³μκ° μν ν΄λμ€μ λ©μλλ₯Ό νΈμΆνλ€λ³΄λ μΈλΆ ν΄λμ€μ μ½λ κΈΈμ΄λ μ€μ΄λ€κ³ , ν΄λμ€μ λ©μλ μ΄λ¦μ ν΅ν΄ μ΄λ€ λ‘μ§μ΄ μνλλμ§ μ½κ² μμΈ‘ν μ μλ μ₯μ μ΄ μλ κ² κ°λ€.
<μμ μ >
private static int getRevenue(Map<WinningNumber, Integer> matchCount) {
int sum = 0;
for (WinningNumber winningNumber : matchCount.keySet()
.stream()
.sorted()
.collect(Collectors.toList())) {
sum += winningNumber.getMoney() * matchCount.get(winningNumber);
}
return sum;
}
<μμ ν>
private static int getRevenue(Map<WinningNumber, Integer> matchCount) {
int sum = 0;
for (WinningNumber winningNumber : matchCount.keySet()
.stream()
.sorted()
.collect(Collectors.toList())) {
sum += WinningNumber.multiply(winningNumber, matchCount);
}
return sum;
}
μμ λ μ½λλ λΉμ²¨ μ«μμ λ°λ₯Έ μκΈμ ν©κ³μ κ³μ°νλ μ½λμ΄λ€. μκΈκ³Ό λΉμ²¨ νμλ₯Ό κ³±νμ¬ κ·Έ κΈμ‘μ κ΅¬ν΄ λνκ³ μλ€.
첫 λ²μ§Έλ μκΈμ ꡬν λwinningNumber.getMoney() * matchCount.get(winningNumber)
μΌλ‘ μμ±νλλ°, getterλ₯Ό μ΄μ©ν΄μ private λ©€λ² λ³μμΈ moneyμ κ°μ κ°μ Έμ€κ³ μλ€.
λ λ²μ§ΈλWinningNumber.multiply(winningNumber, matchCount)
μΌλ‘ μμ ν κ²μ λ³Ό μ μλλ°, WinningNumber ν΄λμ€μμ κ³±μ
μ°μ°μ νλ€λ κ²μ λ°λ‘ μμλ³Ό μ μλ€.
μ΄λ λ― getter μ¬μ©μ μ€μ΄λ €λ κ² λΏμ΄μλλ°, κ·Έ κ³Όμ μμ μλμΉ μκ² λ¦¬ν©ν λ§μ κ²½ννκ² λμκ³ μ΅κ΄μ μΌλ‘ μ½λλ₯Ό μμ±νκΈ°λ³΄λ€ νμ μ’μ μ€κ³μ λν΄ μκ°νλ©΄μ μ½λλ₯Ό μμ±ν΄μΌκ² λ€λ λ°°μμ μ»μ μ μμλ€.
ν λ©μλλ νλμ μν λ§
ν리μ½μ€λ₯Ό μμνμ λλΆν° μ§ν€λ €κ³ νλ λΆλΆμ΄μ§λ§, μ½λλ₯Ό μμ±νλ κ³Όμ μμ νλμ μν μ ꡬλΆμ§λκ² λͺ¨νΈν΄μ§λ©΄μ μ€μνκΈ°κ° μ½μ§ μμλ λΆλΆμ΄μλ€.
μ΄ μμΉμ 체κ°ν μ μμλ κ³κΈ°λ ν μ€νΈ μ½λλ₯Ό μμ±νλ©΄μμλ€. ν μ€νΈ μ½λλ₯Ό κΈ°λ₯λ³λ‘ ꡬμ±νλ κ²λ κ³ λ―Όμ΄ λ§μμλλ°, κ°μ₯ κ³ λ―Όμ΄ λ§μλ λΆλΆμ Scannerλ‘ μ¬μ©μμ μ λ ₯μ λ°λ λ©μλλ μ΄λ»κ² ν μ€νΈλ₯Ό μμ±ν΄μΌ ν μ§μ κ΄ν κ²μ΄μλ€.
λ©μλ λ΄λΆμμ μ¬μ©μμ μ λ ₯μ λ°κΈ° λλ¬Έμ junitμ κΈ°λ₯μΌλ‘ ν μ€νΈλ₯Ό ꡬμ±νλ κ²μ νλ€λ€κ³ νλ¨νμκ³ , μ€κ³ μ체μ λν΄ μμ¬μ ν΄λ³΄κΈ° μμνλ€.
κ³ λ―Όμ νλ μ€ 'μ΄μ°¨νΌ Scannerλ‘ λ°λ κ²λ λ³μμ λ΄μ μμ μ μ²λ¦¬νλκΉ, λ©μλλ₯Ό μ€ννκΈ° μ μ¬μ©μμ μ λ ₯μ λ°μμ ν λ²μ λ§€κ°λ³μλ‘ λκΈ°λ©΄ λμ§ μμκΉ'λΌλ μκ°μ΄ λ€μκ³ , μ€μ§ μ λ ₯λ§ λ°λ λ©μλλ₯Ό λ§λ λ€ λ¦¬ν΄ κ°μ΄ κ³§ λ§€κ°λ³μλ‘ λμ΄κ°λλ‘ λΆλ¦¬νλ ν μ€νΈ μ½λλ₯Ό μμνκ² μμ±ν μ μμλ€.
μ΄λ¬ν κ²½νμ ν΅ν΄ κΈ°μ‘΄μ ꡬνν λ©μλλ μ¬λ¬ μν μ κ°μ§κ³ μμμ κΉ¨λ¬μ μ μμκ³ , ν λ©μλκ° νλμ μν λ§ μννλ€λ μμΉμ μ₯μ μ κΉ¨λ¬μ μ μμλ€.
κ³ λ―Όνλ λΆλΆ & 보μν μ
ν¨ν€μ§ ꡬμ±
νΌμ΄λ¦¬λ·°λ₯Ό νλ€λ³΄λ©΄ ν ν¨ν€μ§μ μ΄κ²μ κ² λ€ λ£μ λ΄ κ³Όμ μ λ€λ₯΄κ² μ¬λ¬ λμμΈ ν¨ν΄μ μ μ©ν λͺ¨μ΅μ λ§μ΄ λ³Ό μ μμλ€. νμ€ν κ·Έλ κ² μ€κ³λ₯Ό ν΄λμΌλ μ½λλ₯Ό μ½μΌλ©΄μ μ΄ν΄νκΈ°λ μ’κ³ κ΅¬μ±μ΄ κΉλν΄λ³΄μλ€.
리ν©ν λ§ κ³Όμ μμ ν¨ν€μ§ ꡬμ±μ λ°κΏλ³ΌκΉ μκ°νμ§λ§, κ·Έλ κ² νλ€κ°λ μμ κ°μμμ΄μΌν κ² κ°μμ(..) λ€μ μ£Ό λ―Έμ μλ MVC ν¨ν΄μ μ μ©ν΄ ꡬνν΄λ³΄λ κ²μ λͺ©νλ‘ νκ³ μλ€.
μμ μ μΈ μμΉ
μ¬λ¬κ°μ§ μμλ₯Ό λ§λ€λ©΄μ κ³ λ―Όμ΄ λλ λΆλΆμ΄ μλλ°, μμ μμλ§μ μ μνλ ν΄λμ€λ₯Ό λ§λ€μ΄ ν λ²μ λͺ°μμ λ£λκ² μ’μ κ²μΈμ§, μλλ©΄ νΉμ ν΄λμ€ λ΄λΆμμ μ μΈν΄ μ¬μ©νλκ² μ’μ κ²μΈμ§ νμ μ΄ μμ§ μλλ€.
λ§μ½ νΉμ μμκ° μ¬λ¬ ν΄λμ€μμ μ€λ³΅μ μΌλ‘ μ°μ΄λ κ²μ΄λΌλ©΄ μ μμ κ²½μ°κ° λ λμ κ² κ°κΈ°λ νλ°, νΉμ ν΄λμ€μμλ§ μ°μ΄λ μμλΌλ©΄ κ΅³μ΄ μμ ν΄λμ€λ₯Ό λ§λ€μ΄ ν¬ν¨μ μμΌμΌνλλΌλ μκ°μ΄ λ λ€. μ΄ λΆλΆμ λ νμ΅μ νλ©΄μ μμλ΄μΌν κ² κ°λ€.
μΈμ νΈμΆ λ°©μ
λ©μλ Aλ₯Ό νΈμΆν λ μΈμλ‘ λ€μ΄κ°λ κ°μ΄ λ©μλ Bμ 리ν΄κ°μ΄λΌλ©΄ λ€λ₯Έ μμ λ³μμ λ©μλ Bμ 리ν΄κ°μ λ°μλμλ€κ° Aμ μΈμμ ν΄λΉ μμ λ³μλ₯Ό λ£μ κ²μΈμ§, μλλ©΄ λ©μλ Aμ μΈμμ λ©μλ Bλ₯Ό λ°λ‘ νΈμΆνλ μμΌλ‘ μ½λλ₯Ό μμ±ν μ§κ° κ³ λ―Όλμλ€. μ μμ λ°©μμ΄ λ μ μ ν κ² κ°κΈ°λ νλ°, κ·Έ μ΄μ μ λν΄ λ 곡λΆν΄λ΄μΌκ² λ€λ μκ°μ΄ λ€μλ€.
λ―Έμ μ μ§ννλ©΄μ μ΄κΈ° μ£Όμ°¨μλ μλ°κ° κ°μ§κ³ μλ μ¬λ¬ κΈ°λ₯(λ©μλ νΉμ ν΄λμ€)μ νμ©νλ λ°©λ²μ λν λ°°μμ΄ λ λ§μλ€λ©΄, νλ°μΌλ‘ μ¬μλ‘ κ·Έλ³΄λ€λ κ°μ²΄ μ§ν₯μ μ€κ³μ κ΄ν κ³ λ―Όκ³Ό κΉ¨λ¬μμΌλ‘λΆν° μ»λ λ°°μμ΄ λ 컀μ§λ κ² κ°λ€.
λ§μ§λ§κΉμ§ μλ‘μ΄ λ°°μμ μ»μ΄κ° μ μλλ‘ μ΄μ¬ν κ³ λ―Όν΄λ΄μΌκ² λ€λ μκ°μ΄ λ€μλ€.
'νκ³ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ°ν μ½] ν리μ½μ€ 4μ£Όμ°¨ (0) | 2022.12.16 |
---|---|
[μ°ν μ½] ν리μ½μ€ 2μ£Όμ°¨ (0) | 2022.11.14 |
[μ°ν μ½] ν리μ½μ€ 1μ£Όμ°¨ (0) | 2022.11.14 |
[SAVE] νλ‘μ νΈ νκ³ (0) | 2022.08.20 |