From f48034764ccd87c12ee2c4ab87cd3f3ff6d6b552 Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 5 Dec 2024 23:43:25 +0900 Subject: [PATCH 01/11] =?UTF-8?q?step3=20-=20=EA=B2=B0=EA=B3=BC=20?= =?UTF-8?q?=EC=A1=B0=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ladder/domain/LadderResultTest.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/java/nextstep/ladder/domain/LadderResultTest.java diff --git a/src/test/java/nextstep/ladder/domain/LadderResultTest.java b/src/test/java/nextstep/ladder/domain/LadderResultTest.java new file mode 100644 index 0000000000..4b221a1fb5 --- /dev/null +++ b/src/test/java/nextstep/ladder/domain/LadderResultTest.java @@ -0,0 +1,32 @@ +package nextstep.ladder.domain; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class LadderResultTest { + + Participants participants; + + @BeforeEach + void setUp() { + participants = new Participants("a,b,c,d"); + } + + @Test + @DisplayName("입력한결과와 사다리결과를 조합하여 참여자의 결과 값에 저장") + void combineLadderResult() { + LadderExecutor ladderExecutor = new LadderExecutor(LinesTest.lines(), participants); + ladderExecutor.executeLadder(); + + LadderResult ladderResult = new LadderResult(ExecuteResultTest.EXECUTE_RESULT, ladderExecutor); + ladderResult.combineLadderResult(); + + assertThat(ladderResult.getPartitions().getParticipant(0).getResult()).isEqualTo("하겐다즈"); + assertThat(ladderResult.getPartitions().getParticipant(1).getResult()).isEqualTo("먹기만해"); + assertThat(ladderResult.getPartitions().getParticipant(2).getResult()).isEqualTo("먹어랏"); + assertThat(ladderResult.getPartitions().getParticipant(3).getResult()).isEqualTo("사줘라"); + } +} From 48280079764284158e7d870545af78dab237343b Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Fri, 13 Dec 2024 18:23:48 +0900 Subject: [PATCH 02/11] =?UTF-8?q?step3=20-=20=ED=94=BC=EB=93=9C=EB=B0=B1?= =?UTF-8?q?=20=EB=B0=98=EC=98=81=20-=20=EC=82=AC=EB=8B=A4=EB=A6=AC=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=20=ED=9B=84=20=EC=9C=84=EC=B9=98=20=EA=B0=92?= =?UTF-8?q?=EA=B3=BC=20=EC=9C=84=EC=B9=98=20=EA=B0=92=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20=EC=B0=B8=EC=97=AC=EC=9E=90=EC=99=80=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=20=EA=B0=92=EC=9D=84=20=EB=A7=A4=ED=95=91=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=B6=80=EB=B6=84=EC=9D=84=20=EB=B6=84=EB=A6=AC?= =?UTF-8?q?=ED=95=98=EB=A9=B4=20=EB=B3=B5=EC=9E=A1=EB=8F=84=20=EA=B0=9C?= =?UTF-8?q?=EC=84=A0=20(=EC=B0=B8=EC=97=AC=EC=9E=90=EA=B0=80=20=EC=9D=B4?= =?UTF-8?q?=EB=8F=99x)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ladder/domain/LadderResultTest.java | 32 ------------------- 1 file changed, 32 deletions(-) delete mode 100644 src/test/java/nextstep/ladder/domain/LadderResultTest.java diff --git a/src/test/java/nextstep/ladder/domain/LadderResultTest.java b/src/test/java/nextstep/ladder/domain/LadderResultTest.java deleted file mode 100644 index 4b221a1fb5..0000000000 --- a/src/test/java/nextstep/ladder/domain/LadderResultTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package nextstep.ladder.domain; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -class LadderResultTest { - - Participants participants; - - @BeforeEach - void setUp() { - participants = new Participants("a,b,c,d"); - } - - @Test - @DisplayName("입력한결과와 사다리결과를 조합하여 참여자의 결과 값에 저장") - void combineLadderResult() { - LadderExecutor ladderExecutor = new LadderExecutor(LinesTest.lines(), participants); - ladderExecutor.executeLadder(); - - LadderResult ladderResult = new LadderResult(ExecuteResultTest.EXECUTE_RESULT, ladderExecutor); - ladderResult.combineLadderResult(); - - assertThat(ladderResult.getPartitions().getParticipant(0).getResult()).isEqualTo("하겐다즈"); - assertThat(ladderResult.getPartitions().getParticipant(1).getResult()).isEqualTo("먹기만해"); - assertThat(ladderResult.getPartitions().getParticipant(2).getResult()).isEqualTo("먹어랏"); - assertThat(ladderResult.getPartitions().getParticipant(3).getResult()).isEqualTo("사줘라"); - } -} From bbcd869e1c144ba9da2385e74312a3d22d9b2cc1 Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Wed, 18 Dec 2024 22:35:45 +0900 Subject: [PATCH 03/11] =?UTF-8?q?step4=20-=20=EB=A6=AC=ED=8C=A9=ED=84=B0?= =?UTF-8?q?=EB=A7=81=20-=20Lines=20>=20NextStepLines=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=EB=AA=85=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ladder/controller/LadderController.java | 8 ++-- .../ladder/domain/LadderExecutor.java | 8 ++-- .../domain/{Lines.java => NextStepLines.java} | 6 +-- .../java/nextstep/ladder/view/OutputView.java | 10 ++--- .../ladder/domain/LadderExecutorTest.java | 2 +- .../nextstep/ladder/domain/LinesTest.java | 40 ------------------- .../ladder/domain/NextStepLinesTest.java | 40 +++++++++++++++++++ 7 files changed, 57 insertions(+), 57 deletions(-) rename src/main/java/nextstep/ladder/domain/{Lines.java => NextStepLines.java} (90%) delete mode 100644 src/test/java/nextstep/ladder/domain/LinesTest.java create mode 100644 src/test/java/nextstep/ladder/domain/NextStepLinesTest.java diff --git a/src/main/java/nextstep/ladder/controller/LadderController.java b/src/main/java/nextstep/ladder/controller/LadderController.java index 862f7cd05a..1516500143 100644 --- a/src/main/java/nextstep/ladder/controller/LadderController.java +++ b/src/main/java/nextstep/ladder/controller/LadderController.java @@ -4,7 +4,7 @@ import nextstep.ladder.domain.LadderFactory; import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; -import nextstep.ladder.domain.Lines; +import nextstep.ladder.domain.NextStepLines; import nextstep.ladder.domain.MachingResult; import nextstep.ladder.domain.Participants; import nextstep.ladder.view.InputView; @@ -28,15 +28,15 @@ public void startLadder() { ExecuteResult executeResult = new ExecuteResult(participants.size(), executeResultStr); - Lines lines = LadderFactory.createLadder(participants, maxLadder); + NextStepLines nextStepLines = LadderFactory.createLadder(participants, maxLadder); - LadderExecutor ladderExecutor = new LadderExecutor(lines, participants); + LadderExecutor ladderExecutor = new LadderExecutor(nextStepLines, participants); MachingResult machingResult = ladderExecutor.play(); LadderResult ladderResult = machingResult.map(participants, executeResult); outputView.outputParticipants(participants); - outputView.outputResult(executeResult, lines, ladderResult); + outputView.outputResult(executeResult, nextStepLines, ladderResult); String participant = inputView.inputParticipantResult(); outputView.outputParticipantResult(ladderResult.getReward(participant)); diff --git a/src/main/java/nextstep/ladder/domain/LadderExecutor.java b/src/main/java/nextstep/ladder/domain/LadderExecutor.java index aa8a6e0640..084ac76a7b 100644 --- a/src/main/java/nextstep/ladder/domain/LadderExecutor.java +++ b/src/main/java/nextstep/ladder/domain/LadderExecutor.java @@ -4,11 +4,11 @@ public class LadderExecutor { - private Lines lines; + private NextStepLines nextStepLines; private Participants participants; - public LadderExecutor(Lines lines, Participants participants) { - this.lines = lines; + public LadderExecutor(NextStepLines nextStepLines, Participants participants) { + this.nextStepLines = nextStepLines; this.participants = participants; } @@ -22,7 +22,7 @@ public MachingResult play() { } private void moveAndCollectResult(MachingResult results, Position position) { - for (Line line : lines.getLines()) { + for (Line line : nextStepLines.getLines()) { Point point = PointFactory.generatePoint(position.getX(), line); position.move(point.getDirection()); } diff --git a/src/main/java/nextstep/ladder/domain/Lines.java b/src/main/java/nextstep/ladder/domain/NextStepLines.java similarity index 90% rename from src/main/java/nextstep/ladder/domain/Lines.java rename to src/main/java/nextstep/ladder/domain/NextStepLines.java index 4a931f848f..c999be5827 100644 --- a/src/main/java/nextstep/ladder/domain/Lines.java +++ b/src/main/java/nextstep/ladder/domain/NextStepLines.java @@ -5,14 +5,14 @@ import java.util.ArrayList; import java.util.List; -public class Lines { +public class NextStepLines { private final List lines; - public Lines() { + public NextStepLines() { this(new ArrayList()); } - public Lines(ArrayList lines) { + public NextStepLines(ArrayList lines) { this.lines = new ArrayList<>(lines); } diff --git a/src/main/java/nextstep/ladder/view/OutputView.java b/src/main/java/nextstep/ladder/view/OutputView.java index 70692a33a7..83a379a1a5 100644 --- a/src/main/java/nextstep/ladder/view/OutputView.java +++ b/src/main/java/nextstep/ladder/view/OutputView.java @@ -2,7 +2,7 @@ import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; -import nextstep.ladder.domain.Lines; +import nextstep.ladder.domain.NextStepLines; import nextstep.ladder.domain.Participant; import nextstep.ladder.domain.Participants; @@ -18,16 +18,16 @@ public class OutputView { POINTS_LINE.put(false, outputLineFalse()); } - public void outputResult(ExecuteResult executeResult, Lines lines, LadderResult ladderResult) { + public void outputResult(ExecuteResult executeResult, NextStepLines nextStepLines, LadderResult ladderResult) { System.out.println(); - outputLadder(lines); + outputLadder(nextStepLines); ouputExecuteResult(executeResult); } - private static void outputLadder(Lines lines) { - lines.getLines().forEach(line -> { + private static void outputLadder(NextStepLines nextStepLines) { + nextStepLines.getLines().forEach(line -> { line.getPoints().forEach(points -> System.out.print(POINTS_LINE.get(points))); System.out.println("|"); }); diff --git a/src/test/java/nextstep/ladder/domain/LadderExecutorTest.java b/src/test/java/nextstep/ladder/domain/LadderExecutorTest.java index 73f514ea62..a56621ea66 100644 --- a/src/test/java/nextstep/ladder/domain/LadderExecutorTest.java +++ b/src/test/java/nextstep/ladder/domain/LadderExecutorTest.java @@ -18,7 +18,7 @@ void setUp() { @Test @DisplayName("사다리를 실행하고 결과를 수집") void moveAndCollectResult() { - LadderExecutor ladderExecutor = new LadderExecutor(LinesTest.lines(), participants); + LadderExecutor ladderExecutor = new LadderExecutor(NextStepLinesTest.lines(), participants); MachingResult machingResult = ladderExecutor.play(); assertThat(machingResult.getMachingResultMap().get(0)).isEqualTo(1); diff --git a/src/test/java/nextstep/ladder/domain/LinesTest.java b/src/test/java/nextstep/ladder/domain/LinesTest.java deleted file mode 100644 index 85dc1253e4..0000000000 --- a/src/test/java/nextstep/ladder/domain/LinesTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package nextstep.ladder.domain; - -import nextstep.ladder.strategy.LineStrategy; -import nextstep.ladder.strategy.TrueLineStrategy; -import org.junit.jupiter.api.Test; - -import static org.assertj.core.api.Assertions.assertThat; - -class LinesTest { - - public static Lines lines() { - LineStrategy lineStrategy = new TrueLineStrategy(); - Lines lines = new Lines(); - lines.generateLine(4, 3, lineStrategy); - return lines; - } - - @Test - void 세명의참가자만큼_네줄로_사다리_생성() { - LineStrategy lineStrategy = new TrueLineStrategy(); - Lines lines = new Lines(); - lines.generateLine(3, 4, lineStrategy); - - assertThat(lines.size()).isEqualTo(4); - for (int i = 0; i < lines.size(); i++) { - assertThatLineSize(lines, i); - assertThatLinePatternIsCorrect(lines, i); - } - } - - private static void assertThatLinePatternIsCorrect(Lines lines, int linesIdx) { - for (int j = 0; j < lines.getLineSize(linesIdx); j++) { - assertThat(lines.getPoint(linesIdx, j)).isEqualTo(j % 2 == 0); - } - } - - private static void assertThatLineSize(Lines lines, int linesIdx) { - assertThat(lines.getLineSize(linesIdx)).isEqualTo(2); - } -} diff --git a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java new file mode 100644 index 0000000000..c7b46849ad --- /dev/null +++ b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java @@ -0,0 +1,40 @@ +package nextstep.ladder.domain; + +import nextstep.ladder.strategy.LineStrategy; +import nextstep.ladder.strategy.TrueLineStrategy; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class NextStepLinesTest { + + public static NextStepLines lines() { + LineStrategy lineStrategy = new TrueLineStrategy(); + NextStepLines nextStepLines = new NextStepLines(); + nextStepLines.generateLine(4, 3, lineStrategy); + return nextStepLines; + } + + @Test + void 세명의참가자만큼_네줄로_사다리_생성() { + LineStrategy lineStrategy = new TrueLineStrategy(); + NextStepLines nextStepLines = new NextStepLines(); + nextStepLines.generateLine(3, 4, lineStrategy); + + assertThat(nextStepLines.size()).isEqualTo(4); + for (int i = 0; i < nextStepLines.size(); i++) { + assertThatLineSize(nextStepLines, i); + assertThatLinePatternIsCorrect(nextStepLines, i); + } + } + + private static void assertThatLinePatternIsCorrect(NextStepLines nextStepLines, int linesIdx) { + for (int j = 0; j < nextStepLines.getLineSize(linesIdx); j++) { + assertThat(nextStepLines.getPoint(linesIdx, j)).isEqualTo(j % 2 == 0); + } + } + + private static void assertThatLineSize(NextStepLines nextStepLines, int linesIdx) { + assertThat(nextStepLines.getLineSize(linesIdx)).isEqualTo(2); + } +} From 3b882082338394971192a3b55eb0cc85bc311f2b Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 19 Dec 2024 00:03:57 +0900 Subject: [PATCH 04/11] =?UTF-8?q?step4=20-=20=EB=A6=AC=ED=8C=A9=ED=84=B0?= =?UTF-8?q?=EB=A7=81=20-=20interface=20=EB=B6=84=EB=A6=AC,=20Cyclic=20Depe?= =?UTF-8?q?ndencies=20=EB=B0=A9=EC=96=B4=20=ED=95=B4=EB=B3=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/engine/LinesCreator.java | 12 ++++++++++ src/main/java/factory/LinesFactoryBean.java | 15 ++++++++++++ .../ladder/controller/LadderController.java | 11 +++++---- .../ladder/domain/LadderExecutor.java | 10 ++++---- .../nextstep/ladder/domain/LadderFactory.java | 13 ----------- .../nextstep/ladder/domain/NextStepLines.java | 11 +++++---- .../java/nextstep/ladder/view/OutputView.java | 9 ++++---- .../java/engine/LinesFactoryBeanTest.java | 23 +++++++++++++++++++ 8 files changed, 73 insertions(+), 31 deletions(-) create mode 100644 src/main/java/engine/LinesCreator.java create mode 100644 src/main/java/factory/LinesFactoryBean.java delete mode 100644 src/main/java/nextstep/ladder/domain/LadderFactory.java create mode 100644 src/test/java/engine/LinesFactoryBeanTest.java diff --git a/src/main/java/engine/LinesCreator.java b/src/main/java/engine/LinesCreator.java new file mode 100644 index 0000000000..0171a359fa --- /dev/null +++ b/src/main/java/engine/LinesCreator.java @@ -0,0 +1,12 @@ +package engine; + +import nextstep.ladder.domain.Line; +import nextstep.ladder.strategy.LineStrategy; + +import java.util.List; + + +public interface LinesCreator { + void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy); + List getLines(); +} diff --git a/src/main/java/factory/LinesFactoryBean.java b/src/main/java/factory/LinesFactoryBean.java new file mode 100644 index 0000000000..f99e0f156c --- /dev/null +++ b/src/main/java/factory/LinesFactoryBean.java @@ -0,0 +1,15 @@ +package factory; + +import engine.LinesCreator; +import nextstep.ladder.domain.NextStepLines; +import nextstep.ladder.strategy.LineStrategy; + +public class LinesFactoryBean { + + public static LinesCreator createNextStepLadderFactory(int size, int maxLadder, LineStrategy lineStrategy) { + NextStepLines nextStepLines = new NextStepLines(); + nextStepLines.generateLine(size, maxLadder, lineStrategy); + return new NextStepLines(); + } + +} diff --git a/src/main/java/nextstep/ladder/controller/LadderController.java b/src/main/java/nextstep/ladder/controller/LadderController.java index 1516500143..1644777861 100644 --- a/src/main/java/nextstep/ladder/controller/LadderController.java +++ b/src/main/java/nextstep/ladder/controller/LadderController.java @@ -1,12 +1,13 @@ package nextstep.ladder.controller; +import engine.LinesCreator; +import factory.LinesFactoryBean; import nextstep.ladder.domain.LadderExecutor; -import nextstep.ladder.domain.LadderFactory; import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; -import nextstep.ladder.domain.NextStepLines; import nextstep.ladder.domain.MachingResult; import nextstep.ladder.domain.Participants; +import nextstep.ladder.strategy.LadderLineStrategy; import nextstep.ladder.view.InputView; import nextstep.ladder.view.OutputView; @@ -28,15 +29,15 @@ public void startLadder() { ExecuteResult executeResult = new ExecuteResult(participants.size(), executeResultStr); - NextStepLines nextStepLines = LadderFactory.createLadder(participants, maxLadder); + LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(participants.size(), maxLadder, new LadderLineStrategy()); - LadderExecutor ladderExecutor = new LadderExecutor(nextStepLines, participants); + LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); LadderResult ladderResult = machingResult.map(participants, executeResult); outputView.outputParticipants(participants); - outputView.outputResult(executeResult, nextStepLines, ladderResult); + outputView.outputResult(executeResult, linesCreator, ladderResult); String participant = inputView.inputParticipantResult(); outputView.outputParticipantResult(ladderResult.getReward(participant)); diff --git a/src/main/java/nextstep/ladder/domain/LadderExecutor.java b/src/main/java/nextstep/ladder/domain/LadderExecutor.java index 084ac76a7b..b72d1e8416 100644 --- a/src/main/java/nextstep/ladder/domain/LadderExecutor.java +++ b/src/main/java/nextstep/ladder/domain/LadderExecutor.java @@ -1,14 +1,16 @@ package nextstep.ladder.domain; +import engine.LinesCreator; + import java.util.Collections; public class LadderExecutor { - private NextStepLines nextStepLines; + private LinesCreator linesCreator; private Participants participants; - public LadderExecutor(NextStepLines nextStepLines, Participants participants) { - this.nextStepLines = nextStepLines; + public LadderExecutor(LinesCreator linesCreator, Participants participants) { + this.linesCreator = linesCreator; this.participants = participants; } @@ -22,7 +24,7 @@ public MachingResult play() { } private void moveAndCollectResult(MachingResult results, Position position) { - for (Line line : nextStepLines.getLines()) { + for (Line line : linesCreator.getLines()) { Point point = PointFactory.generatePoint(position.getX(), line); position.move(point.getDirection()); } diff --git a/src/main/java/nextstep/ladder/domain/LadderFactory.java b/src/main/java/nextstep/ladder/domain/LadderFactory.java deleted file mode 100644 index e084cb6836..0000000000 --- a/src/main/java/nextstep/ladder/domain/LadderFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package nextstep.ladder.domain; - -import nextstep.ladder.strategy.LadderLineStrategy; - -public class LadderFactory { - - public static Lines createLadder(Participants participants, int maxLadder) { - Lines lines = new Lines(); - lines.generateLine(participants.size(), maxLadder, new LadderLineStrategy()); - return lines; - } - -} diff --git a/src/main/java/nextstep/ladder/domain/NextStepLines.java b/src/main/java/nextstep/ladder/domain/NextStepLines.java index c999be5827..0047a3febc 100644 --- a/src/main/java/nextstep/ladder/domain/NextStepLines.java +++ b/src/main/java/nextstep/ladder/domain/NextStepLines.java @@ -1,11 +1,12 @@ package nextstep.ladder.domain; +import engine.LinesCreator; import nextstep.ladder.strategy.LineStrategy; import java.util.ArrayList; import java.util.List; -public class NextStepLines { +public class NextStepLines implements LinesCreator { private final List lines; public NextStepLines() { @@ -27,10 +28,6 @@ private void generateLine(int participantCnt, LineStrategy lineStrategy) { lines.add(line); } - public int size() { - return lines.size(); - } - public List getLines() { return lines; } @@ -42,4 +39,8 @@ public int getLineSize(int linesIdx) { public boolean getPoint(int linesIdx, int lineIdx) { return lines.get(linesIdx).getLine(lineIdx); } + + public int size() { + return lines.size(); + } } diff --git a/src/main/java/nextstep/ladder/view/OutputView.java b/src/main/java/nextstep/ladder/view/OutputView.java index 83a379a1a5..2cb40ca201 100644 --- a/src/main/java/nextstep/ladder/view/OutputView.java +++ b/src/main/java/nextstep/ladder/view/OutputView.java @@ -1,5 +1,6 @@ package nextstep.ladder.view; +import engine.LinesCreator; import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; import nextstep.ladder.domain.NextStepLines; @@ -18,16 +19,16 @@ public class OutputView { POINTS_LINE.put(false, outputLineFalse()); } - public void outputResult(ExecuteResult executeResult, NextStepLines nextStepLines, LadderResult ladderResult) { + public void outputResult(ExecuteResult executeResult, LinesCreator linesCreator, LadderResult ladderResult) { System.out.println(); - outputLadder(nextStepLines); + outputLadder(linesCreator); ouputExecuteResult(executeResult); } - private static void outputLadder(NextStepLines nextStepLines) { - nextStepLines.getLines().forEach(line -> { + private static void outputLadder(LinesCreator linesCreator) { + ((NextStepLines) linesCreator).getLines().forEach(line -> { line.getPoints().forEach(points -> System.out.print(POINTS_LINE.get(points))); System.out.println("|"); }); diff --git a/src/test/java/engine/LinesFactoryBeanTest.java b/src/test/java/engine/LinesFactoryBeanTest.java new file mode 100644 index 0000000000..3a9337f7b6 --- /dev/null +++ b/src/test/java/engine/LinesFactoryBeanTest.java @@ -0,0 +1,23 @@ +package engine; + +import factory.LinesFactoryBean; +import nextstep.ladder.domain.LadderExecutor; +import nextstep.ladder.domain.MachingResult; +import nextstep.ladder.domain.Participants; +import nextstep.ladder.strategy.TrueLineStrategy; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LinesFactoryBeanTest { + + @Test + void createNextStepLadderFactory() { + LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(3, 5, new TrueLineStrategy()); + Participants participants = new Participants("a,b,c"); + LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); + MachingResult machingResult = ladderExecutor.play(); + + assertThat(machingResult.getMachingResultMap()).hasSize(3); + } +} From 093974451ad4b6da4d6c4d438422db9abb15003c Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 19 Dec 2024 00:04:45 +0900 Subject: [PATCH 05/11] =?UTF-8?q?step4=20-=20all=EC=9D=84=20=EC=9E=85?= =?UTF-8?q?=EB=A0=A5=ED=96=88=EC=9D=84=20=EA=B2=BD=EC=9A=B0=20=EC=A0=84?= =?UTF-8?q?=EC=B2=B4=20=EA=B2=B0=EA=B3=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/nextstep/ladder/domain/LadderResult.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/nextstep/ladder/domain/LadderResult.java b/src/main/java/nextstep/ladder/domain/LadderResult.java index cd0bc1e1f6..7ef9cd2b66 100644 --- a/src/main/java/nextstep/ladder/domain/LadderResult.java +++ b/src/main/java/nextstep/ladder/domain/LadderResult.java @@ -25,6 +25,9 @@ public Map getPlayerToReward() { } public String getReward(String name) { + if (name.equals("all")) { + return ""; + } return playerToReward.get(new Participant(name)); } } From 73cec8327c6b8ca98fe4da7fd3ee31ca16499af8 Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 19 Dec 2024 00:30:43 +0900 Subject: [PATCH 06/11] =?UTF-8?q?step4=20-=20=EB=A6=AC=ED=8C=A9=ED=84=B0?= =?UTF-8?q?=EB=A7=81=20-=20=EC=98=A4=EB=A5=98=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/factory/LinesFactoryBean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/factory/LinesFactoryBean.java b/src/main/java/factory/LinesFactoryBean.java index f99e0f156c..f08d38d3c6 100644 --- a/src/main/java/factory/LinesFactoryBean.java +++ b/src/main/java/factory/LinesFactoryBean.java @@ -9,7 +9,7 @@ public class LinesFactoryBean { public static LinesCreator createNextStepLadderFactory(int size, int maxLadder, LineStrategy lineStrategy) { NextStepLines nextStepLines = new NextStepLines(); nextStepLines.generateLine(size, maxLadder, lineStrategy); - return new NextStepLines(); + return nextStepLines; } } From 0da356feb2185ee7145f70e75865ae9fb2210c49 Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 19 Dec 2024 00:31:09 +0900 Subject: [PATCH 07/11] =?UTF-8?q?step4=20-=20=EB=A6=AC=ED=8C=A9=ED=84=B0?= =?UTF-8?q?=EB=A7=81=20-=20=EA=B2=B0=EA=B3=BC=20=EC=B0=BE=EA=B8=B0=20all?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=20=EB=A1=9C=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ladder/controller/LadderController.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/main/java/nextstep/ladder/controller/LadderController.java b/src/main/java/nextstep/ladder/controller/LadderController.java index 1644777861..1e216e934c 100644 --- a/src/main/java/nextstep/ladder/controller/LadderController.java +++ b/src/main/java/nextstep/ladder/controller/LadderController.java @@ -39,13 +39,23 @@ public void startLadder() { outputView.outputParticipants(participants); outputView.outputResult(executeResult, linesCreator, ladderResult); - String participant = inputView.inputParticipantResult(); - outputView.outputParticipantResult(ladderResult.getReward(participant)); - - participant = inputView.inputParticipantResult(); - outputView.outputParticipantResult(ladderResult.getReward(participant)); + inputOutputFindResult(ladderResult); outputView.outputParticipantAllResult(ladderResult); } + private void inputOutputFindResult(LadderResult ladderResult) { + String participant = inputOutputResult(ladderResult); + + if (!"all".equals(participant)) { + inputOutputResult(ladderResult); + } + } + + private String inputOutputResult(LadderResult ladderResult) { + String participant = inputView.inputParticipantResult(); + outputView.outputParticipantResult(ladderResult.getReward(participant)); + return participant; + } + } From 975928a7dc44c4de05558cd5441df56f76645d3f Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 20 Nov 2025 02:54:14 +0900 Subject: [PATCH 08/11] =?UTF-8?q?step4=20-=20[=ED=81=B4=EB=A1=9C=EB=93=9C?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0]=20LinesFactoryBean->Lines?= =?UTF-8?q?Factory=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80=EA=B2=BD=20Bean?= =?UTF-8?q?=EC=9D=80=20Spring=EC=9D=98=20FactoryBean=20=ED=8C=A8=ED=84=B4?= =?UTF-8?q?=EA=B3=BC=20=ED=98=BC=EB=8F=99=EB=90=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/engine/LinesCreator.java | 2 -- src/main/java/factory/LinesFactory.java | 13 +++++++++++++ src/main/java/factory/LinesFactoryBean.java | 15 --------------- .../ladder/controller/LadderController.java | 4 ++-- .../nextstep/ladder/domain/NextStepLines.java | 8 +++++--- ...FactoryBeanTest.java => LinesFactoryTest.java} | 8 ++++---- .../nextstep/ladder/domain/NextStepLinesTest.java | 7 ++----- 7 files changed, 26 insertions(+), 31 deletions(-) create mode 100644 src/main/java/factory/LinesFactory.java delete mode 100644 src/main/java/factory/LinesFactoryBean.java rename src/test/java/engine/{LinesFactoryBeanTest.java => LinesFactoryTest.java} (72%) diff --git a/src/main/java/engine/LinesCreator.java b/src/main/java/engine/LinesCreator.java index 0171a359fa..76a94ca359 100644 --- a/src/main/java/engine/LinesCreator.java +++ b/src/main/java/engine/LinesCreator.java @@ -1,12 +1,10 @@ package engine; import nextstep.ladder.domain.Line; -import nextstep.ladder.strategy.LineStrategy; import java.util.List; public interface LinesCreator { - void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy); List getLines(); } diff --git a/src/main/java/factory/LinesFactory.java b/src/main/java/factory/LinesFactory.java new file mode 100644 index 0000000000..bb775ac877 --- /dev/null +++ b/src/main/java/factory/LinesFactory.java @@ -0,0 +1,13 @@ +package factory; + +import engine.LinesCreator; +import nextstep.ladder.domain.NextStepLines; +import nextstep.ladder.strategy.LineStrategy; + +public class LinesFactory { + + public static LinesCreator createNextStepLines(int size, int maxLadder, LineStrategy lineStrategy) { + return new NextStepLines(size, maxLadder, lineStrategy); + } + +} diff --git a/src/main/java/factory/LinesFactoryBean.java b/src/main/java/factory/LinesFactoryBean.java deleted file mode 100644 index f08d38d3c6..0000000000 --- a/src/main/java/factory/LinesFactoryBean.java +++ /dev/null @@ -1,15 +0,0 @@ -package factory; - -import engine.LinesCreator; -import nextstep.ladder.domain.NextStepLines; -import nextstep.ladder.strategy.LineStrategy; - -public class LinesFactoryBean { - - public static LinesCreator createNextStepLadderFactory(int size, int maxLadder, LineStrategy lineStrategy) { - NextStepLines nextStepLines = new NextStepLines(); - nextStepLines.generateLine(size, maxLadder, lineStrategy); - return nextStepLines; - } - -} diff --git a/src/main/java/nextstep/ladder/controller/LadderController.java b/src/main/java/nextstep/ladder/controller/LadderController.java index 1e216e934c..0259a2927b 100644 --- a/src/main/java/nextstep/ladder/controller/LadderController.java +++ b/src/main/java/nextstep/ladder/controller/LadderController.java @@ -1,7 +1,7 @@ package nextstep.ladder.controller; import engine.LinesCreator; -import factory.LinesFactoryBean; +import factory.LinesFactory; import nextstep.ladder.domain.LadderExecutor; import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; @@ -29,7 +29,7 @@ public void startLadder() { ExecuteResult executeResult = new ExecuteResult(participants.size(), executeResultStr); - LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(participants.size(), maxLadder, new LadderLineStrategy()); + LinesCreator linesCreator = LinesFactory.createNextStepLines(participants.size(), maxLadder, new LadderLineStrategy()); LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); diff --git a/src/main/java/nextstep/ladder/domain/NextStepLines.java b/src/main/java/nextstep/ladder/domain/NextStepLines.java index 0047a3febc..e240689162 100644 --- a/src/main/java/nextstep/ladder/domain/NextStepLines.java +++ b/src/main/java/nextstep/ladder/domain/NextStepLines.java @@ -9,15 +9,16 @@ public class NextStepLines implements LinesCreator { private final List lines; - public NextStepLines() { - this(new ArrayList()); + public NextStepLines(int participantCnt, int maxLadder, LineStrategy lineStrategy) { + this.lines = new ArrayList<>(); + generateLine(participantCnt, maxLadder, lineStrategy); } public NextStepLines(ArrayList lines) { this.lines = new ArrayList<>(lines); } - public void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy) { + private void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy) { for (int i = 0; i < maxLadder; i++) { generateLine(participantCnt, lineStrategy); } @@ -28,6 +29,7 @@ private void generateLine(int participantCnt, LineStrategy lineStrategy) { lines.add(line); } + @Override public List getLines() { return lines; } diff --git a/src/test/java/engine/LinesFactoryBeanTest.java b/src/test/java/engine/LinesFactoryTest.java similarity index 72% rename from src/test/java/engine/LinesFactoryBeanTest.java rename to src/test/java/engine/LinesFactoryTest.java index 3a9337f7b6..e3b9a8a59e 100644 --- a/src/test/java/engine/LinesFactoryBeanTest.java +++ b/src/test/java/engine/LinesFactoryTest.java @@ -1,6 +1,6 @@ package engine; -import factory.LinesFactoryBean; +import factory.LinesFactory; import nextstep.ladder.domain.LadderExecutor; import nextstep.ladder.domain.MachingResult; import nextstep.ladder.domain.Participants; @@ -9,11 +9,11 @@ import static org.assertj.core.api.Assertions.assertThat; -public class LinesFactoryBeanTest { +public class LinesFactoryTest { @Test - void createNextStepLadderFactory() { - LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(3, 5, new TrueLineStrategy()); + void createNextStepLines() { + LinesCreator linesCreator = LinesFactory.createNextStepLines(3, 5, new TrueLineStrategy()); Participants participants = new Participants("a,b,c"); LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); diff --git a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java index c7b46849ad..9b9ff9e9e4 100644 --- a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java +++ b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java @@ -10,16 +10,13 @@ class NextStepLinesTest { public static NextStepLines lines() { LineStrategy lineStrategy = new TrueLineStrategy(); - NextStepLines nextStepLines = new NextStepLines(); - nextStepLines.generateLine(4, 3, lineStrategy); - return nextStepLines; + return new NextStepLines(4, 3, lineStrategy); } @Test void 세명의참가자만큼_네줄로_사다리_생성() { LineStrategy lineStrategy = new TrueLineStrategy(); - NextStepLines nextStepLines = new NextStepLines(); - nextStepLines.generateLine(3, 4, lineStrategy); + NextStepLines nextStepLines = new NextStepLines(3, 4, lineStrategy); assertThat(nextStepLines.size()).isEqualTo(4); for (int i = 0; i < nextStepLines.size(); i++) { From bfe6e676f99f7bfe3f21150f42896c90b5787e53 Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 20 Nov 2025 02:54:46 +0900 Subject: [PATCH 09/11] =?UTF-8?q?Revert=20"step4=20-=20[=ED=81=B4=EB=A1=9C?= =?UTF-8?q?=EB=93=9C=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0]=20LinesFactoryBe?= =?UTF-8?q?an->LinesFactory=EB=84=A4=EC=9D=B4=EB=B0=8D=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=20Bean=EC=9D=80=20Spring=EC=9D=98=20FactoryBean=20?= =?UTF-8?q?=ED=8C=A8=ED=84=B4=EA=B3=BC=20=ED=98=BC=EB=8F=99=EB=90=A8"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 975928a7dc44c4de05558cd5441df56f76645d3f. --- src/main/java/engine/LinesCreator.java | 2 ++ src/main/java/factory/LinesFactory.java | 13 ------------- src/main/java/factory/LinesFactoryBean.java | 15 +++++++++++++++ .../ladder/controller/LadderController.java | 4 ++-- .../nextstep/ladder/domain/NextStepLines.java | 8 +++----- ...FactoryTest.java => LinesFactoryBeanTest.java} | 8 ++++---- .../nextstep/ladder/domain/NextStepLinesTest.java | 7 +++++-- 7 files changed, 31 insertions(+), 26 deletions(-) delete mode 100644 src/main/java/factory/LinesFactory.java create mode 100644 src/main/java/factory/LinesFactoryBean.java rename src/test/java/engine/{LinesFactoryTest.java => LinesFactoryBeanTest.java} (72%) diff --git a/src/main/java/engine/LinesCreator.java b/src/main/java/engine/LinesCreator.java index 76a94ca359..0171a359fa 100644 --- a/src/main/java/engine/LinesCreator.java +++ b/src/main/java/engine/LinesCreator.java @@ -1,10 +1,12 @@ package engine; import nextstep.ladder.domain.Line; +import nextstep.ladder.strategy.LineStrategy; import java.util.List; public interface LinesCreator { + void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy); List getLines(); } diff --git a/src/main/java/factory/LinesFactory.java b/src/main/java/factory/LinesFactory.java deleted file mode 100644 index bb775ac877..0000000000 --- a/src/main/java/factory/LinesFactory.java +++ /dev/null @@ -1,13 +0,0 @@ -package factory; - -import engine.LinesCreator; -import nextstep.ladder.domain.NextStepLines; -import nextstep.ladder.strategy.LineStrategy; - -public class LinesFactory { - - public static LinesCreator createNextStepLines(int size, int maxLadder, LineStrategy lineStrategy) { - return new NextStepLines(size, maxLadder, lineStrategy); - } - -} diff --git a/src/main/java/factory/LinesFactoryBean.java b/src/main/java/factory/LinesFactoryBean.java new file mode 100644 index 0000000000..f08d38d3c6 --- /dev/null +++ b/src/main/java/factory/LinesFactoryBean.java @@ -0,0 +1,15 @@ +package factory; + +import engine.LinesCreator; +import nextstep.ladder.domain.NextStepLines; +import nextstep.ladder.strategy.LineStrategy; + +public class LinesFactoryBean { + + public static LinesCreator createNextStepLadderFactory(int size, int maxLadder, LineStrategy lineStrategy) { + NextStepLines nextStepLines = new NextStepLines(); + nextStepLines.generateLine(size, maxLadder, lineStrategy); + return nextStepLines; + } + +} diff --git a/src/main/java/nextstep/ladder/controller/LadderController.java b/src/main/java/nextstep/ladder/controller/LadderController.java index 0259a2927b..1e216e934c 100644 --- a/src/main/java/nextstep/ladder/controller/LadderController.java +++ b/src/main/java/nextstep/ladder/controller/LadderController.java @@ -1,7 +1,7 @@ package nextstep.ladder.controller; import engine.LinesCreator; -import factory.LinesFactory; +import factory.LinesFactoryBean; import nextstep.ladder.domain.LadderExecutor; import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; @@ -29,7 +29,7 @@ public void startLadder() { ExecuteResult executeResult = new ExecuteResult(participants.size(), executeResultStr); - LinesCreator linesCreator = LinesFactory.createNextStepLines(participants.size(), maxLadder, new LadderLineStrategy()); + LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(participants.size(), maxLadder, new LadderLineStrategy()); LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); diff --git a/src/main/java/nextstep/ladder/domain/NextStepLines.java b/src/main/java/nextstep/ladder/domain/NextStepLines.java index e240689162..0047a3febc 100644 --- a/src/main/java/nextstep/ladder/domain/NextStepLines.java +++ b/src/main/java/nextstep/ladder/domain/NextStepLines.java @@ -9,16 +9,15 @@ public class NextStepLines implements LinesCreator { private final List lines; - public NextStepLines(int participantCnt, int maxLadder, LineStrategy lineStrategy) { - this.lines = new ArrayList<>(); - generateLine(participantCnt, maxLadder, lineStrategy); + public NextStepLines() { + this(new ArrayList()); } public NextStepLines(ArrayList lines) { this.lines = new ArrayList<>(lines); } - private void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy) { + public void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy) { for (int i = 0; i < maxLadder; i++) { generateLine(participantCnt, lineStrategy); } @@ -29,7 +28,6 @@ private void generateLine(int participantCnt, LineStrategy lineStrategy) { lines.add(line); } - @Override public List getLines() { return lines; } diff --git a/src/test/java/engine/LinesFactoryTest.java b/src/test/java/engine/LinesFactoryBeanTest.java similarity index 72% rename from src/test/java/engine/LinesFactoryTest.java rename to src/test/java/engine/LinesFactoryBeanTest.java index e3b9a8a59e..3a9337f7b6 100644 --- a/src/test/java/engine/LinesFactoryTest.java +++ b/src/test/java/engine/LinesFactoryBeanTest.java @@ -1,6 +1,6 @@ package engine; -import factory.LinesFactory; +import factory.LinesFactoryBean; import nextstep.ladder.domain.LadderExecutor; import nextstep.ladder.domain.MachingResult; import nextstep.ladder.domain.Participants; @@ -9,11 +9,11 @@ import static org.assertj.core.api.Assertions.assertThat; -public class LinesFactoryTest { +public class LinesFactoryBeanTest { @Test - void createNextStepLines() { - LinesCreator linesCreator = LinesFactory.createNextStepLines(3, 5, new TrueLineStrategy()); + void createNextStepLadderFactory() { + LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(3, 5, new TrueLineStrategy()); Participants participants = new Participants("a,b,c"); LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); diff --git a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java index 9b9ff9e9e4..c7b46849ad 100644 --- a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java +++ b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java @@ -10,13 +10,16 @@ class NextStepLinesTest { public static NextStepLines lines() { LineStrategy lineStrategy = new TrueLineStrategy(); - return new NextStepLines(4, 3, lineStrategy); + NextStepLines nextStepLines = new NextStepLines(); + nextStepLines.generateLine(4, 3, lineStrategy); + return nextStepLines; } @Test void 세명의참가자만큼_네줄로_사다리_생성() { LineStrategy lineStrategy = new TrueLineStrategy(); - NextStepLines nextStepLines = new NextStepLines(3, 4, lineStrategy); + NextStepLines nextStepLines = new NextStepLines(); + nextStepLines.generateLine(3, 4, lineStrategy); assertThat(nextStepLines.size()).isEqualTo(4); for (int i = 0; i < nextStepLines.size(); i++) { From a56e853ced4fcfe8051bd44b5bae256421b5748f Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 20 Nov 2025 02:55:12 +0900 Subject: [PATCH 10/11] =?UTF-8?q?Reapply=20"step4=20-=20[=ED=81=B4?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0]=20Lines?= =?UTF-8?q?FactoryBean->LinesFactory=EB=84=A4=EC=9D=B4=EB=B0=8D=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20Bean=EC=9D=80=20Spring=EC=9D=98=20FactoryB?= =?UTF-8?q?ean=20=ED=8C=A8=ED=84=B4=EA=B3=BC=20=ED=98=BC=EB=8F=99=EB=90=A8?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit bfe6e676f99f7bfe3f21150f42896c90b5787e53. --- src/main/java/engine/LinesCreator.java | 2 -- src/main/java/factory/LinesFactory.java | 13 +++++++++++++ src/main/java/factory/LinesFactoryBean.java | 15 --------------- .../ladder/controller/LadderController.java | 4 ++-- .../nextstep/ladder/domain/NextStepLines.java | 8 +++++--- ...FactoryBeanTest.java => LinesFactoryTest.java} | 8 ++++---- .../nextstep/ladder/domain/NextStepLinesTest.java | 7 ++----- 7 files changed, 26 insertions(+), 31 deletions(-) create mode 100644 src/main/java/factory/LinesFactory.java delete mode 100644 src/main/java/factory/LinesFactoryBean.java rename src/test/java/engine/{LinesFactoryBeanTest.java => LinesFactoryTest.java} (72%) diff --git a/src/main/java/engine/LinesCreator.java b/src/main/java/engine/LinesCreator.java index 0171a359fa..76a94ca359 100644 --- a/src/main/java/engine/LinesCreator.java +++ b/src/main/java/engine/LinesCreator.java @@ -1,12 +1,10 @@ package engine; import nextstep.ladder.domain.Line; -import nextstep.ladder.strategy.LineStrategy; import java.util.List; public interface LinesCreator { - void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy); List getLines(); } diff --git a/src/main/java/factory/LinesFactory.java b/src/main/java/factory/LinesFactory.java new file mode 100644 index 0000000000..bb775ac877 --- /dev/null +++ b/src/main/java/factory/LinesFactory.java @@ -0,0 +1,13 @@ +package factory; + +import engine.LinesCreator; +import nextstep.ladder.domain.NextStepLines; +import nextstep.ladder.strategy.LineStrategy; + +public class LinesFactory { + + public static LinesCreator createNextStepLines(int size, int maxLadder, LineStrategy lineStrategy) { + return new NextStepLines(size, maxLadder, lineStrategy); + } + +} diff --git a/src/main/java/factory/LinesFactoryBean.java b/src/main/java/factory/LinesFactoryBean.java deleted file mode 100644 index f08d38d3c6..0000000000 --- a/src/main/java/factory/LinesFactoryBean.java +++ /dev/null @@ -1,15 +0,0 @@ -package factory; - -import engine.LinesCreator; -import nextstep.ladder.domain.NextStepLines; -import nextstep.ladder.strategy.LineStrategy; - -public class LinesFactoryBean { - - public static LinesCreator createNextStepLadderFactory(int size, int maxLadder, LineStrategy lineStrategy) { - NextStepLines nextStepLines = new NextStepLines(); - nextStepLines.generateLine(size, maxLadder, lineStrategy); - return nextStepLines; - } - -} diff --git a/src/main/java/nextstep/ladder/controller/LadderController.java b/src/main/java/nextstep/ladder/controller/LadderController.java index 1e216e934c..0259a2927b 100644 --- a/src/main/java/nextstep/ladder/controller/LadderController.java +++ b/src/main/java/nextstep/ladder/controller/LadderController.java @@ -1,7 +1,7 @@ package nextstep.ladder.controller; import engine.LinesCreator; -import factory.LinesFactoryBean; +import factory.LinesFactory; import nextstep.ladder.domain.LadderExecutor; import nextstep.ladder.domain.ExecuteResult; import nextstep.ladder.domain.LadderResult; @@ -29,7 +29,7 @@ public void startLadder() { ExecuteResult executeResult = new ExecuteResult(participants.size(), executeResultStr); - LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(participants.size(), maxLadder, new LadderLineStrategy()); + LinesCreator linesCreator = LinesFactory.createNextStepLines(participants.size(), maxLadder, new LadderLineStrategy()); LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); diff --git a/src/main/java/nextstep/ladder/domain/NextStepLines.java b/src/main/java/nextstep/ladder/domain/NextStepLines.java index 0047a3febc..e240689162 100644 --- a/src/main/java/nextstep/ladder/domain/NextStepLines.java +++ b/src/main/java/nextstep/ladder/domain/NextStepLines.java @@ -9,15 +9,16 @@ public class NextStepLines implements LinesCreator { private final List lines; - public NextStepLines() { - this(new ArrayList()); + public NextStepLines(int participantCnt, int maxLadder, LineStrategy lineStrategy) { + this.lines = new ArrayList<>(); + generateLine(participantCnt, maxLadder, lineStrategy); } public NextStepLines(ArrayList lines) { this.lines = new ArrayList<>(lines); } - public void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy) { + private void generateLine(int participantCnt, int maxLadder, LineStrategy lineStrategy) { for (int i = 0; i < maxLadder; i++) { generateLine(participantCnt, lineStrategy); } @@ -28,6 +29,7 @@ private void generateLine(int participantCnt, LineStrategy lineStrategy) { lines.add(line); } + @Override public List getLines() { return lines; } diff --git a/src/test/java/engine/LinesFactoryBeanTest.java b/src/test/java/engine/LinesFactoryTest.java similarity index 72% rename from src/test/java/engine/LinesFactoryBeanTest.java rename to src/test/java/engine/LinesFactoryTest.java index 3a9337f7b6..e3b9a8a59e 100644 --- a/src/test/java/engine/LinesFactoryBeanTest.java +++ b/src/test/java/engine/LinesFactoryTest.java @@ -1,6 +1,6 @@ package engine; -import factory.LinesFactoryBean; +import factory.LinesFactory; import nextstep.ladder.domain.LadderExecutor; import nextstep.ladder.domain.MachingResult; import nextstep.ladder.domain.Participants; @@ -9,11 +9,11 @@ import static org.assertj.core.api.Assertions.assertThat; -public class LinesFactoryBeanTest { +public class LinesFactoryTest { @Test - void createNextStepLadderFactory() { - LinesCreator linesCreator = LinesFactoryBean.createNextStepLadderFactory(3, 5, new TrueLineStrategy()); + void createNextStepLines() { + LinesCreator linesCreator = LinesFactory.createNextStepLines(3, 5, new TrueLineStrategy()); Participants participants = new Participants("a,b,c"); LadderExecutor ladderExecutor = new LadderExecutor(linesCreator, participants); MachingResult machingResult = ladderExecutor.play(); diff --git a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java index c7b46849ad..9b9ff9e9e4 100644 --- a/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java +++ b/src/test/java/nextstep/ladder/domain/NextStepLinesTest.java @@ -10,16 +10,13 @@ class NextStepLinesTest { public static NextStepLines lines() { LineStrategy lineStrategy = new TrueLineStrategy(); - NextStepLines nextStepLines = new NextStepLines(); - nextStepLines.generateLine(4, 3, lineStrategy); - return nextStepLines; + return new NextStepLines(4, 3, lineStrategy); } @Test void 세명의참가자만큼_네줄로_사다리_생성() { LineStrategy lineStrategy = new TrueLineStrategy(); - NextStepLines nextStepLines = new NextStepLines(); - nextStepLines.generateLine(3, 4, lineStrategy); + NextStepLines nextStepLines = new NextStepLines(3, 4, lineStrategy); assertThat(nextStepLines.size()).isEqualTo(4); for (int i = 0; i < nextStepLines.size(); i++) { From e385b86c09a7b262b4be7204a7911d6ff9e86ebc Mon Sep 17 00:00:00 2001 From: kimsuyeondev Date: Thu, 20 Nov 2025 02:59:29 +0900 Subject: [PATCH 11/11] =?UTF-8?q?step4=20-=20[=ED=81=B4=EB=A1=9C=EB=93=9C?= =?UTF-8?q?=EC=BD=94=EB=93=9C=EB=A6=AC=EB=B7=B0]=20=EC=9D=B8=ED=84=B0?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=8A=A4=EB=A5=BC=20=EB=B0=9B=EC=95=84?= =?UTF-8?q?=EB=86=93=EA=B3=A0=20=EB=8B=A4=EC=9A=B4=EC=BA=90=EC=8A=A4?= =?UTF-8?q?=ED=8C=85=EC=9C=BC=EB=A1=9C=20=EA=B0=9C=EB=B0=A9-=ED=8F=90?= =?UTF-8?q?=EC=87=84=EC=9B=90=EC=B9=99=20=EC=9C=84=EB=B0=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95(OCP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/nextstep/ladder/view/OutputView.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/nextstep/ladder/view/OutputView.java b/src/main/java/nextstep/ladder/view/OutputView.java index 2cb40ca201..9e94f68203 100644 --- a/src/main/java/nextstep/ladder/view/OutputView.java +++ b/src/main/java/nextstep/ladder/view/OutputView.java @@ -28,7 +28,7 @@ public void outputResult(ExecuteResult executeResult, LinesCreator linesCreator, } private static void outputLadder(LinesCreator linesCreator) { - ((NextStepLines) linesCreator).getLines().forEach(line -> { + linesCreator.getLines().forEach(line -> { line.getPoints().forEach(points -> System.out.print(POINTS_LINE.get(points))); System.out.println("|"); });