From 82abafb9f6fca140d1a892e1416276864cc96765 Mon Sep 17 00:00:00 2001 From: lsj8367 Date: Fri, 23 Jul 2021 14:56:25 +0900 Subject: [PATCH 1/9] =?UTF-8?q?refactor:=20=EB=9E=9C=EB=8D=A4=20=EC=88=AB?= =?UTF-8?q?=EC=9E=90=20=EA=B5=AC=ED=98=84=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/racingcar/utils/RandomNumber.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/main/java/racingcar/utils/RandomNumber.java diff --git a/src/main/java/racingcar/utils/RandomNumber.java b/src/main/java/racingcar/utils/RandomNumber.java new file mode 100644 index 00000000000..32570adb53b --- /dev/null +++ b/src/main/java/racingcar/utils/RandomNumber.java @@ -0,0 +1,18 @@ +package racingcar.utils; + +import java.util.Random; + +public class RandomNumber { + private static final int MAX_VALUE = 10; + + private Random random; + + public int producedRandomNumber() { + return createRandomNum(); + } + + private int createRandomNum() { + random = new Random(); + return random.nextInt(MAX_VALUE); + } +} From 066c8d24be1c1cb47f36731c3481e395f169443f Mon Sep 17 00:00:00 2001 From: lsj8367 Date: Fri, 23 Jul 2021 14:57:41 +0900 Subject: [PATCH 2/9] =?UTF-8?q?refactor:=20=ED=8C=A8=ED=82=A4=EC=A7=80=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC(utils,=20domain,=20view)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/RacingGame.java | 19 +++++++++--------- src/main/java/racingcar/{ => domain}/Car.java | 2 +- .../java/racingcar/{ => domain}/Winner.java | 20 ++++++++++--------- .../java/racingcar/{ => view}/InputView.java | 2 +- .../java/racingcar/{ => view}/ResultView.java | 4 +++- src/test/java/racingcar/CarTest.java | 2 ++ src/test/java/racingcar/RacingGameTest.java | 1 + 7 files changed, 29 insertions(+), 21 deletions(-) rename src/main/java/racingcar/{ => domain}/Car.java (97%) rename src/main/java/racingcar/{ => domain}/Winner.java (80%) rename src/main/java/racingcar/{ => view}/InputView.java (98%) rename src/main/java/racingcar/{ => view}/ResultView.java (91%) diff --git a/src/main/java/racingcar/RacingGame.java b/src/main/java/racingcar/RacingGame.java index e05b95575c4..2a9bc4dc8d2 100644 --- a/src/main/java/racingcar/RacingGame.java +++ b/src/main/java/racingcar/RacingGame.java @@ -1,12 +1,15 @@ package racingcar; +import racingcar.domain.Car; +import racingcar.domain.Winner; +import racingcar.utils.RandomNumber; +import racingcar.view.InputView; +import racingcar.view.ResultView; + import java.util.Collections; import java.util.List; -import java.util.Random; public class RacingGame { - private static final int MAX_VALUE = 10; - public static void main(String[] args) { InputView inputView = new InputView(); ResultView resultView = new ResultView(); @@ -23,18 +26,16 @@ public static void main(String[] args) { Collections.reverse(cars); Winner winner = Winner.of(Winner.resultPointOfFirst(cars)); + System.out.println(winner.firstResultPoint()); - winner.extracted(resultView, cars, winner); + winner.winnerSelection(resultView, cars); } public static void printAll(List cars) { + RandomNumber randomNumber = new RandomNumber(); ResultView resultView = new ResultView(); for(Car car: cars) { - Random random = new Random(); - - int randomNumber = random.nextInt(MAX_VALUE); - int moveNumber = car.move(randomNumber); - + int moveNumber = car.move(randomNumber.producedRandomNumber()); resultView.print(car.getName(), moveNumber); } System.out.println(); diff --git a/src/main/java/racingcar/Car.java b/src/main/java/racingcar/domain/Car.java similarity index 97% rename from src/main/java/racingcar/Car.java rename to src/main/java/racingcar/domain/Car.java index 72b3a635f0f..99e107adc84 100644 --- a/src/main/java/racingcar/Car.java +++ b/src/main/java/racingcar/domain/Car.java @@ -1,4 +1,4 @@ -package racingcar; +package racingcar.domain; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/racingcar/Winner.java b/src/main/java/racingcar/domain/Winner.java similarity index 80% rename from src/main/java/racingcar/Winner.java rename to src/main/java/racingcar/domain/Winner.java index 9baffb4d5ae..13d6eb6431c 100644 --- a/src/main/java/racingcar/Winner.java +++ b/src/main/java/racingcar/domain/Winner.java @@ -1,4 +1,6 @@ -package racingcar; +package racingcar.domain; + +import racingcar.view.ResultView; import java.util.List; import java.util.stream.Collectors; @@ -14,6 +16,12 @@ public static Winner of(int firstResultPoint) { return new Winner(firstResultPoint); } + public static int resultPointOfFirst(List cars) { + return cars.stream().map(Car::getMoveSpace) + .max(Integer::compareTo) + .get(); + } + public int firstResultPoint() { return getFirstResultPoint(); } @@ -22,17 +30,11 @@ private int getFirstResultPoint() { return firstResultPoint; } - public void extracted(ResultView resultView, List cars, Winner winner) { + public void winnerSelection(ResultView resultView, List cars) { List winners = cars.stream() - .filter(car -> car.getMoveSpace() == winner.firstResultPoint()) + .filter(car -> car.getMoveSpace() == firstResultPoint()) .collect(Collectors.toList()); resultView.getWinner(winners); } - - public static int resultPointOfFirst(List cars) { - return cars.stream().map(Car::getMoveSpace) - .max(Integer::compareTo) - .get(); - } } diff --git a/src/main/java/racingcar/InputView.java b/src/main/java/racingcar/view/InputView.java similarity index 98% rename from src/main/java/racingcar/InputView.java rename to src/main/java/racingcar/view/InputView.java index 3646ff7b68e..026f0db969b 100644 --- a/src/main/java/racingcar/InputView.java +++ b/src/main/java/racingcar/view/InputView.java @@ -1,4 +1,4 @@ -package racingcar; +package racingcar.view; import java.util.Scanner; diff --git a/src/main/java/racingcar/ResultView.java b/src/main/java/racingcar/view/ResultView.java similarity index 91% rename from src/main/java/racingcar/ResultView.java rename to src/main/java/racingcar/view/ResultView.java index 5100af35190..2c671aac2e4 100644 --- a/src/main/java/racingcar/ResultView.java +++ b/src/main/java/racingcar/view/ResultView.java @@ -1,4 +1,6 @@ -package racingcar; +package racingcar.view; + +import racingcar.domain.Car; import java.util.List; diff --git a/src/test/java/racingcar/CarTest.java b/src/test/java/racingcar/CarTest.java index f54544d481b..4fc2f08c5ae 100644 --- a/src/test/java/racingcar/CarTest.java +++ b/src/test/java/racingcar/CarTest.java @@ -3,6 +3,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import racingcar.domain.Car; +import racingcar.view.InputView; import java.util.List; import java.util.Random; diff --git a/src/test/java/racingcar/RacingGameTest.java b/src/test/java/racingcar/RacingGameTest.java index be6f1393541..f140b19fb05 100644 --- a/src/test/java/racingcar/RacingGameTest.java +++ b/src/test/java/racingcar/RacingGameTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import racingcar.domain.Car; import java.util.List; From ffcdef33337c8fd5d6bbe0f67f8912b4ee4cc353 Mon Sep 17 00:00:00 2001 From: lsj8367 Date: Fri, 23 Jul 2021 15:11:36 +0900 Subject: [PATCH 3/9] =?UTF-8?q?refactor:=20=EB=B3=80=EC=88=98=EB=A5=BC=20?= =?UTF-8?q?=EB=B0=98=ED=99=98=ED=95=98=EA=B2=8C=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=84=B0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/utils/RandomNumber.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/racingcar/utils/RandomNumber.java b/src/main/java/racingcar/utils/RandomNumber.java index 32570adb53b..a0128af246e 100644 --- a/src/main/java/racingcar/utils/RandomNumber.java +++ b/src/main/java/racingcar/utils/RandomNumber.java @@ -5,14 +5,15 @@ public class RandomNumber { private static final int MAX_VALUE = 10; - private Random random; + private int randomNumber; public int producedRandomNumber() { - return createRandomNum(); + randomNumber = createRandomNum(); + return randomNumber; } private int createRandomNum() { - random = new Random(); + Random random = new Random(); return random.nextInt(MAX_VALUE); } } From d815f96d07ce89207fbf5c23db27c634692a559f Mon Sep 17 00:00:00 2001 From: lsj8367 Date: Fri, 23 Jul 2021 15:12:33 +0900 Subject: [PATCH 4/9] =?UTF-8?q?refactor:=20Name=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=EC=9C=BC=EB=A1=9C=20=EC=98=88=EC=99=B8=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/domain/Name.java | 18 ++++++++++++++++++ src/main/java/racingcar/view/InputView.java | 12 +++--------- 2 files changed, 21 insertions(+), 9 deletions(-) create mode 100644 src/main/java/racingcar/domain/Name.java diff --git a/src/main/java/racingcar/domain/Name.java b/src/main/java/racingcar/domain/Name.java new file mode 100644 index 00000000000..52a9f5bdebe --- /dev/null +++ b/src/main/java/racingcar/domain/Name.java @@ -0,0 +1,18 @@ +package racingcar.domain; + +public class Name { + private static final int LIMIT_CAR_NAME_LENGTH = 5; + private String carName; + + private Name(String carName) { + this.carName = carName; + } + + public static Name validateByName(String carName) { + if(carName.length() >= LIMIT_CAR_NAME_LENGTH) { + throw new IllegalArgumentException("이름은 5글자가 최대입니다."); + } + return new Name(carName); + } + +} diff --git a/src/main/java/racingcar/view/InputView.java b/src/main/java/racingcar/view/InputView.java index 026f0db969b..660e01353fd 100644 --- a/src/main/java/racingcar/view/InputView.java +++ b/src/main/java/racingcar/view/InputView.java @@ -1,5 +1,7 @@ package racingcar.view; +import racingcar.domain.Name; + import java.util.Scanner; /* @@ -7,7 +9,6 @@ */ public class InputView { private static final Scanner sc = new Scanner(System.in); - private static final int LIMIT_CAR_NAME_LENGTH = 5; public String[] insertCarNames() { System.out.println("경주할 자동차 이름을 입력하세요"); @@ -24,18 +25,11 @@ public String[] splitCarName(String text) { private String[] createNameOfCarsArray(String text) { String[] cars = text.split(","); for (int i = 0; i < cars.length; i++) { - carLengthValidate(cars[i]); + Name.validateByName(cars[i]); } return text.split(","); } - private void carLengthValidate(String car) { - if (car.length() > LIMIT_CAR_NAME_LENGTH) { - throw new IllegalArgumentException("이름은 5글자가 최대입니다."); - } - } - - public int getNumberOfTry() { System.out.println("시도할 횟수는 몇 회 인가요?"); return sc.nextInt(); From 7db3f5baa76b0dd89c882276f7847e93a2a5edcd Mon Sep 17 00:00:00 2001 From: SeungJae Lee Date: Sat, 24 Jul 2021 10:35:23 +0900 Subject: [PATCH 5/9] =?UTF-8?q?test:=20=EB=82=9C=EC=88=98=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=ED=85=8C=EC=8A=A4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../racingcar/utils/RandomNumberTest.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/test/java/racingcar/utils/RandomNumberTest.java diff --git a/src/test/java/racingcar/utils/RandomNumberTest.java b/src/test/java/racingcar/utils/RandomNumberTest.java new file mode 100644 index 00000000000..920d51bd6f5 --- /dev/null +++ b/src/test/java/racingcar/utils/RandomNumberTest.java @@ -0,0 +1,26 @@ +package racingcar.utils; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class RandomNumberTest { + + RandomNumber randomNumber; + + @BeforeEach + void setUp() { + randomNumber = new RandomNumber(); + } + + @Test + @DisplayName("랜덤 생성기 테스트") + void randomNumberTest() { + System.out.println(randomNumber.producedRandomNumber()); + System.out.println(randomNumber); + System.out.println(randomNumber.producedRandomNumber()); + System.out.println(randomNumber); + } +} \ No newline at end of file From 771885fb4f8dac2fcb1b167a86e9e8340281e860 Mon Sep 17 00:00:00 2001 From: SeungJae Lee Date: Sat, 24 Jul 2021 10:36:00 +0900 Subject: [PATCH 6/9] =?UTF-8?q?refactor:=20=ED=94=BC=EB=93=9C=EB=B0=B1=20?= =?UTF-8?q?=EB=B0=98=EC=98=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/RacingGame.java | 3 ++- src/main/java/racingcar/domain/Name.java | 10 ++++++++-- src/main/java/racingcar/domain/Winner.java | 4 ++-- src/main/java/racingcar/utils/RandomNumber.java | 3 ++- src/main/java/racingcar/view/InputView.java | 6 ++++-- src/test/java/racingcar/CarTest.java | 5 +---- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main/java/racingcar/RacingGame.java b/src/main/java/racingcar/RacingGame.java index 2a9bc4dc8d2..cfbebce4900 100644 --- a/src/main/java/racingcar/RacingGame.java +++ b/src/main/java/racingcar/RacingGame.java @@ -28,7 +28,8 @@ public static void main(String[] args) { Winner winner = Winner.of(Winner.resultPointOfFirst(cars)); System.out.println(winner.firstResultPoint()); - winner.winnerSelection(resultView, cars); + List winners = winner.winnerSelection(cars); + resultView.getWinner(winners); } public static void printAll(List cars) { diff --git a/src/main/java/racingcar/domain/Name.java b/src/main/java/racingcar/domain/Name.java index 52a9f5bdebe..d76b0cde0d9 100644 --- a/src/main/java/racingcar/domain/Name.java +++ b/src/main/java/racingcar/domain/Name.java @@ -2,17 +2,23 @@ public class Name { private static final int LIMIT_CAR_NAME_LENGTH = 5; + private static final String ERR_MESSAGE = "이름은 5글자가 최대입니다."; + private String carName; private Name(String carName) { this.carName = carName; } - public static Name validateByName(String carName) { + public static Name createName(String carName) { if(carName.length() >= LIMIT_CAR_NAME_LENGTH) { - throw new IllegalArgumentException("이름은 5글자가 최대입니다."); + throw new IllegalArgumentException(ERR_MESSAGE); } + return new Name(carName); } + public String getCarName() { + return carName; + } } diff --git a/src/main/java/racingcar/domain/Winner.java b/src/main/java/racingcar/domain/Winner.java index 13d6eb6431c..7dda4b20325 100644 --- a/src/main/java/racingcar/domain/Winner.java +++ b/src/main/java/racingcar/domain/Winner.java @@ -30,11 +30,11 @@ private int getFirstResultPoint() { return firstResultPoint; } - public void winnerSelection(ResultView resultView, List cars) { + public List winnerSelection(List cars) { List winners = cars.stream() .filter(car -> car.getMoveSpace() == firstResultPoint()) .collect(Collectors.toList()); - resultView.getWinner(winners); + return winners; } } diff --git a/src/main/java/racingcar/utils/RandomNumber.java b/src/main/java/racingcar/utils/RandomNumber.java index a0128af246e..b6e1bd4927f 100644 --- a/src/main/java/racingcar/utils/RandomNumber.java +++ b/src/main/java/racingcar/utils/RandomNumber.java @@ -5,6 +5,8 @@ public class RandomNumber { private static final int MAX_VALUE = 10; + private final Random random = new Random(); + private int randomNumber; public int producedRandomNumber() { @@ -13,7 +15,6 @@ public int producedRandomNumber() { } private int createRandomNum() { - Random random = new Random(); return random.nextInt(MAX_VALUE); } } diff --git a/src/main/java/racingcar/view/InputView.java b/src/main/java/racingcar/view/InputView.java index 660e01353fd..675cec4fae4 100644 --- a/src/main/java/racingcar/view/InputView.java +++ b/src/main/java/racingcar/view/InputView.java @@ -25,9 +25,11 @@ public String[] splitCarName(String text) { private String[] createNameOfCarsArray(String text) { String[] cars = text.split(","); for (int i = 0; i < cars.length; i++) { - Name.validateByName(cars[i]); + Name name = Name.createName(cars[i]); + cars[i] = name.getCarName(); } - return text.split(","); + + return cars; } public int getNumberOfTry() { diff --git a/src/test/java/racingcar/CarTest.java b/src/test/java/racingcar/CarTest.java index 4fc2f08c5ae..85c3dbb805e 100644 --- a/src/test/java/racingcar/CarTest.java +++ b/src/test/java/racingcar/CarTest.java @@ -14,14 +14,12 @@ class CarTest { Car car; - Random random; @BeforeEach void setUpCar() { String[] carNames = {"pobi"}; List cars = Car.createCars(carNames); car = cars.get(0); - random = new Random(); } @Test @@ -31,8 +29,7 @@ void randomValueTest() { int result = 0; for(int i = 0; i < tryNumber; i++){ - int randomNumber = random.nextInt(10); - result = car.move(randomNumber); + result = car.move(5); } assertThat(car.getMoveSpace()).isEqualTo(result); From 201934b61eb990bfbb2863199c16c3aa19039df1 Mon Sep 17 00:00:00 2001 From: SeungJae Lee Date: Sat, 24 Jul 2021 10:43:22 +0900 Subject: [PATCH 7/9] =?UTF-8?q?remove:=20=EB=82=9C=EC=88=98=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=82=AD=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../racingcar/utils/RandomNumberTest.java | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 src/test/java/racingcar/utils/RandomNumberTest.java diff --git a/src/test/java/racingcar/utils/RandomNumberTest.java b/src/test/java/racingcar/utils/RandomNumberTest.java deleted file mode 100644 index 920d51bd6f5..00000000000 --- a/src/test/java/racingcar/utils/RandomNumberTest.java +++ /dev/null @@ -1,26 +0,0 @@ -package racingcar.utils; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -class RandomNumberTest { - - RandomNumber randomNumber; - - @BeforeEach - void setUp() { - randomNumber = new RandomNumber(); - } - - @Test - @DisplayName("랜덤 생성기 테스트") - void randomNumberTest() { - System.out.println(randomNumber.producedRandomNumber()); - System.out.println(randomNumber); - System.out.println(randomNumber.producedRandomNumber()); - System.out.println(randomNumber); - } -} \ No newline at end of file From 0b04d51874c5d3cc80cc06572ee2e46de50ffd69 Mon Sep 17 00:00:00 2001 From: SeungJae Lee Date: Sat, 24 Jul 2021 11:19:03 +0900 Subject: [PATCH 8/9] =?UTF-8?q?refactor:=20=EB=B9=84=EC=A6=88=EB=8B=88?= =?UTF-8?q?=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/RacingGame.java | 27 ++--------------- .../controller/RacingCarController.java | 30 +++++++++++++++++++ src/main/java/racingcar/view/ResultView.java | 14 ++++++++- 3 files changed, 46 insertions(+), 25 deletions(-) create mode 100644 src/main/java/racingcar/controller/RacingCarController.java diff --git a/src/main/java/racingcar/RacingGame.java b/src/main/java/racingcar/RacingGame.java index cfbebce4900..b94b0e87d80 100644 --- a/src/main/java/racingcar/RacingGame.java +++ b/src/main/java/racingcar/RacingGame.java @@ -1,44 +1,23 @@ package racingcar; +import racingcar.controller.RacingCarController; import racingcar.domain.Car; -import racingcar.domain.Winner; -import racingcar.utils.RandomNumber; import racingcar.view.InputView; import racingcar.view.ResultView; -import java.util.Collections; import java.util.List; public class RacingGame { public static void main(String[] args) { InputView inputView = new InputView(); ResultView resultView = new ResultView(); + RacingCarController racingCarController = new RacingCarController(); String[] carNames = inputView.insertCarNames(); int tryNumber = inputView.getNumberOfTry(); - List cars = Car.createCars(carNames); + List winners = racingCarController.getWinner(carNames, tryNumber); - for(int i = 0; i < tryNumber; i++) { - printAll(cars); - } - - Collections.reverse(cars); - - Winner winner = Winner.of(Winner.resultPointOfFirst(cars)); - System.out.println(winner.firstResultPoint()); - - List winners = winner.winnerSelection(cars); resultView.getWinner(winners); } - - public static void printAll(List cars) { - RandomNumber randomNumber = new RandomNumber(); - ResultView resultView = new ResultView(); - for(Car car: cars) { - int moveNumber = car.move(randomNumber.producedRandomNumber()); - resultView.print(car.getName(), moveNumber); - } - System.out.println(); - } } diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java new file mode 100644 index 00000000000..0cb732692bf --- /dev/null +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -0,0 +1,30 @@ +package racingcar.controller; + +import racingcar.domain.Car; +import racingcar.domain.Winner; +import racingcar.view.ResultView; + +import java.util.Collections; +import java.util.List; + +public class RacingCarController { + private final ResultView resultView = new ResultView(); + + + public List getWinner(String[] carNames, int tryNumber) { + List cars = Car.createCars(carNames); + + for(int i = 0; i < tryNumber; i++) { + resultView.printAll(cars); + } + + Collections.reverse(cars); + return createWinnerList(cars); + } + + private List createWinnerList(List cars) { + Winner winner = Winner.of(Winner.resultPointOfFirst(cars)); + return winner.winnerSelection(cars); + } + +} diff --git a/src/main/java/racingcar/view/ResultView.java b/src/main/java/racingcar/view/ResultView.java index 2c671aac2e4..e1dd5303110 100644 --- a/src/main/java/racingcar/view/ResultView.java +++ b/src/main/java/racingcar/view/ResultView.java @@ -1,6 +1,7 @@ package racingcar.view; import racingcar.domain.Car; +import racingcar.utils.RandomNumber; import java.util.List; @@ -8,6 +9,10 @@ * 자동차 경주 결과 View */ public class ResultView { + private static final RandomNumber randomNumber = new RandomNumber(); + + private int moveNumber; + public void print(String carname, int move) { System.out.print(carname + ":"); for (int i = 0; i < move; i++) { @@ -18,11 +23,18 @@ public void print(String carname, int move) { public void getWinner(List winners) { StringBuilder winnerText = new StringBuilder(); - for (Car winner : winners) { winnerText.append(winner.getName()).append(" "); } System.out.println("우승자는 " + winnerText + "입니다."); } + public void printAll(List cars) { + for(Car car : cars) { + moveNumber = car.move(randomNumber.producedRandomNumber()); + print(car.getName(), moveNumber); + } + System.out.println(); + } + } From 838d97c0b4e455d430213708d8673d38b1503581 Mon Sep 17 00:00:00 2001 From: SeungJae Lee Date: Sun, 25 Jul 2021 10:25:09 +0900 Subject: [PATCH 9/9] =?UTF-8?q?refactor:=20=ED=94=BC=EB=93=9C=EB=B0=B1=20?= =?UTF-8?q?=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/racingcar/RacingGame.java | 9 +-------- .../controller/RacingCarController.java | 17 +++++++++++++---- src/main/java/racingcar/domain/Name.java | 2 +- src/main/java/racingcar/view/ResultView.java | 13 ------------- 4 files changed, 15 insertions(+), 26 deletions(-) diff --git a/src/main/java/racingcar/RacingGame.java b/src/main/java/racingcar/RacingGame.java index b94b0e87d80..330dd4d2693 100644 --- a/src/main/java/racingcar/RacingGame.java +++ b/src/main/java/racingcar/RacingGame.java @@ -1,23 +1,16 @@ package racingcar; import racingcar.controller.RacingCarController; -import racingcar.domain.Car; import racingcar.view.InputView; -import racingcar.view.ResultView; - -import java.util.List; public class RacingGame { public static void main(String[] args) { InputView inputView = new InputView(); - ResultView resultView = new ResultView(); RacingCarController racingCarController = new RacingCarController(); String[] carNames = inputView.insertCarNames(); int tryNumber = inputView.getNumberOfTry(); - List winners = racingCarController.getWinner(carNames, tryNumber); - - resultView.getWinner(winners); + racingCarController.getWinner(carNames, tryNumber); } } diff --git a/src/main/java/racingcar/controller/RacingCarController.java b/src/main/java/racingcar/controller/RacingCarController.java index 0cb732692bf..3ec94204d91 100644 --- a/src/main/java/racingcar/controller/RacingCarController.java +++ b/src/main/java/racingcar/controller/RacingCarController.java @@ -2,6 +2,7 @@ import racingcar.domain.Car; import racingcar.domain.Winner; +import racingcar.utils.RandomNumber; import racingcar.view.ResultView; import java.util.Collections; @@ -9,17 +10,18 @@ public class RacingCarController { private final ResultView resultView = new ResultView(); + private final RandomNumber randomNumber = new RandomNumber(); - - public List getWinner(String[] carNames, int tryNumber) { + public void getWinner(String[] carNames, int tryNumber) { List cars = Car.createCars(carNames); for(int i = 0; i < tryNumber; i++) { - resultView.printAll(cars); + printAll(cars); } Collections.reverse(cars); - return createWinnerList(cars); + List winners = createWinnerList(cars); + resultView.getWinner(winners); } private List createWinnerList(List cars) { @@ -27,4 +29,11 @@ private List createWinnerList(List cars) { return winner.winnerSelection(cars); } + private void printAll(List cars) { + for(Car car : cars) { + int moveNumber = car.move(randomNumber.producedRandomNumber()); + resultView.print(car.getName(), moveNumber); + } + System.out.println(); + } } diff --git a/src/main/java/racingcar/domain/Name.java b/src/main/java/racingcar/domain/Name.java index d76b0cde0d9..f1ca8915048 100644 --- a/src/main/java/racingcar/domain/Name.java +++ b/src/main/java/racingcar/domain/Name.java @@ -2,7 +2,7 @@ public class Name { private static final int LIMIT_CAR_NAME_LENGTH = 5; - private static final String ERR_MESSAGE = "이름은 5글자가 최대입니다."; + private static final String ERR_MESSAGE = "이름은 " + LIMIT_CAR_NAME_LENGTH + "글자가 최대입니다."; private String carName; diff --git a/src/main/java/racingcar/view/ResultView.java b/src/main/java/racingcar/view/ResultView.java index e1dd5303110..477036faa20 100644 --- a/src/main/java/racingcar/view/ResultView.java +++ b/src/main/java/racingcar/view/ResultView.java @@ -1,7 +1,6 @@ package racingcar.view; import racingcar.domain.Car; -import racingcar.utils.RandomNumber; import java.util.List; @@ -9,9 +8,6 @@ * 자동차 경주 결과 View */ public class ResultView { - private static final RandomNumber randomNumber = new RandomNumber(); - - private int moveNumber; public void print(String carname, int move) { System.out.print(carname + ":"); @@ -28,13 +24,4 @@ public void getWinner(List winners) { } System.out.println("우승자는 " + winnerText + "입니다."); } - - public void printAll(List cars) { - for(Car car : cars) { - moveNumber = car.move(randomNumber.producedRandomNumber()); - print(car.getName(), moveNumber); - } - System.out.println(); - } - }