Skip to content

Commit 824c6ff

Browse files
committed
[Refactor/next-step#1] Lotto, Lottery 불변 리스트구현
1 parent f78b350 commit 824c6ff

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

src/main/java/model/Lotto.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package model;
22

3+
import java.util.Collections;
34
import java.util.List;
45

56
public class Lotto {
@@ -15,7 +16,7 @@ public Lotto(List<Integer> numbers) {
1516
throw new IllegalArgumentException("로또 번호 목록이 비어 있거나 null 입니다.");
1617
}
1718
validateNumbers(numbers);
18-
this.numbers = numbers; // numbers를 초기화
19+
this.numbers = Collections.unmodifiableList(numbers);
1920
}
2021

2122
private void validateNumbers(List<Integer> numbers) {

src/main/java/model/LottoTicketMachine.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package model;
22

33
import java.util.ArrayList;
4+
import java.util.Collections;
45
import java.util.List;
56

67
public class LottoTicketMachine {
78

8-
private static final int LOTTO_TICKET_PRICE = 1000;
9+
private static final int LOTTO_TICKET_PRICE = 1_000;
910
private final int ticketCount;
1011
private final LottoGenerator lottoGenerator;
1112
private final List<Lotto> lottery = new ArrayList<>();
@@ -20,7 +21,7 @@ public List<Lotto> generateLottery() {
2021
lottery.add(lottoGenerator.generateLottoNumbers());
2122
}
2223

23-
return lottery;
24+
return Collections.unmodifiableList(lottery);
2425
}
2526

2627
public int getTicketCount() {

src/main/java/view/InputView.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
public class InputView {
77

8-
public int getPurchaseAmount() {
8+
public int getPurchaseAmount(){
99
try (Scanner scanner = new Scanner(System.in)) {
1010
System.out.println("구입금액을 입력해 주세요.");
1111
int purchaseAmount = scanner.nextInt();
12-
validatePositive(purchaseAmount);
12+
validatePurchaseAmount(purchaseAmount);
1313

1414
return purchaseAmount;
1515
} catch (InputMismatchException e) {
@@ -19,9 +19,20 @@ public int getPurchaseAmount() {
1919
}
2020
}
2121

22-
private void validatePositive(int number) {
23-
if (number < 0) {
22+
private void validatePurchaseAmount(int number){
23+
validatePositive(number);
24+
validateMinimumPrice(number);
25+
}
26+
27+
private void validatePositive(int number){
28+
if (number < 0){
2429
throw new IllegalArgumentException("양수가 아닌 음수가 입력되어 예외가 발생되었습니다.");
2530
}
2631
}
32+
33+
private void validateMinimumPrice(int number){
34+
if (number < 1000){
35+
throw new IllegalArgumentException("로또의 최소 구입금액은 1000원 입니다.");
36+
}
37+
}
2738
}

0 commit comments

Comments
 (0)