Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[다리 건너기] 김승진 미션 제출합니다. (2) #8

Open
wants to merge 37 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
de27111
docs(README): 기능 목록 작성
ohksj77 Aug 20, 2023
7f15ca6
feat: ComponentFactory와 BridgeGameManager 추가
ohksj77 Aug 20, 2023
2fa5c20
feat: InputValidator와 InputManager 추가
ohksj77 Aug 20, 2023
b582e76
feat: 게임 시작 메시지 출력
ohksj77 Aug 20, 2023
d7d8368
docs(README): 구현 클래스 추가
ohksj77 Aug 20, 2023
29db821
feat: 다리 길이 입력 요청 메시지 출력 기능
ohksj77 Aug 20, 2023
68be748
feat: 열거형 추가
ohksj77 Aug 20, 2023
4c141c5
feat: 출력문 추가 및 출력 기능
ohksj77 Aug 20, 2023
9fea868
feat(ErrorMessage): 열거형 추가
ohksj77 Aug 20, 2023
6220b94
refactor: InputValidator 위치 수정
ohksj77 Aug 20, 2023
ee54fd4
feat: 다리 사이즈 입력 기능
ohksj77 Aug 20, 2023
653b7b1
feat(MoveCommand): 열거형 추가
ohksj77 Aug 30, 2023
c6419fc
feat: 움직일 방향 입력 기능
ohksj77 Aug 30, 2023
933ddb3
refactor: 기존 InputManager 이름 수정 및 입력 재시도 기능
ohksj77 Aug 30, 2023
f719668
feat(TryCount): 시도횟수 도메인 클래스 추가
ohksj77 Aug 31, 2023
0c1d693
feat(ResultStatus): 결과 상태 enum 추가
ohksj77 Aug 31, 2023
11fa306
feat(GameResult): 결과 도메인 클래스 추가
ohksj77 Aug 31, 2023
a2bfb1f
feat(ResultManager): 결과 관리 클래스 추가
ohksj77 Aug 31, 2023
fc538d9
feat(Bridge): 다리 관리 일급 컬렉션 추가
ohksj77 Aug 31, 2023
d9cf1c8
feat(BridgeMaker): 다리 생성 기능
ohksj77 Aug 31, 2023
8345a0a
feat(BridgeType): 랜덤 생성 숫자 U 혹은 D로 매핑 기능
ohksj77 Aug 31, 2023
9dc365f
feat(ComponentFactory): 팩토리 메서드
ohksj77 Aug 31, 2023
58d92fc
feat(ErrorMessage): 에러 메시지 추가
ohksj77 Aug 31, 2023
e45fd72
feat(BridgeStorage): 저장소 클래스 추가
ohksj77 Aug 31, 2023
fbbe984
feat: 다리 사이즈 열거형 추가 및 적용
ohksj77 Aug 31, 2023
b44aec2
refactor: 중복 열거형 제거 및 통합
ohksj77 Aug 31, 2023
6ee84d1
feat: 정답 결과 계산 로직
ohksj77 Aug 31, 2023
6aea15e
feat: 매 시도 결과 출력 기능
ohksj77 Aug 31, 2023
c25bc71
feat: 재시도 기능
ohksj77 Aug 31, 2023
56b9152
feat: 입력 에러 메시지 출력 기능
ohksj77 Aug 31, 2023
b5d9c8d
feat: 결과 출력 기능
ohksj77 Aug 31, 2023
689a59e
refactor: BridgeGame 패키지 이동
ohksj77 Aug 31, 2023
0867315
docs(README): 리드미 내용 추가
ohksj77 Aug 31, 2023
812d1f1
refactor: 에러 메시지 출력 공통 로직 메서드 추출
ohksj77 Aug 31, 2023
03cbfd1
refactor: final 매개변수에 추가
ohksj77 Sep 1, 2023
8832bdd
test: 테스트 추가
ohksj77 Sep 1, 2023
f08402f
test: 재시도 테스트 추가
ohksj77 Sep 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: InputValidator와 InputManager 추가
클래스 추가
- InputValidator
- InputManager
  • Loading branch information
ohksj77 committed Aug 20, 2023
commit 2fa5c20931671521cad79db056a7456fbb2e4e02
27 changes: 26 additions & 1 deletion src/main/java/bridge/factory/ComponentFactory.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,35 @@
package bridge.factory;

import bridge.BridgeGame;
import bridge.io.InputManager;
import bridge.io.InputValidator;
import bridge.io.InputView;
import bridge.io.OutputView;
import bridge.manager.BridgeGameManager;

public class ComponentFactory {

public BridgeGameManager bridgeGameManager() {
return new BridgeGameManager();
return new BridgeGameManager(inputManager(), outputView(), bridgeGame());
}

private BridgeGame bridgeGame() {
return new BridgeGame();
}

private OutputView outputView() {
return new OutputView();
}

private InputManager inputManager() {
return new InputManager(inputView(), inputValidator());
}

private InputValidator inputValidator() {
return new InputValidator();
}

private InputView inputView() {
return new InputView();
}
}
11 changes: 11 additions & 0 deletions src/main/java/bridge/io/InputManager.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package bridge.io;

public class InputManager {
private final InputView inputView;
private final InputValidator inputValidator;

public InputManager(final InputView inputView, final InputValidator inputValidator) {
this.inputView = inputView;
this.inputValidator = inputValidator;
}
}
4 changes: 4 additions & 0 deletions src/main/java/bridge/io/InputValidator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package bridge.io;

public class InputValidator {
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bridge;
package bridge.io;

/**
* 사용자로부터 입력을 받는 역할을 한다.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package bridge;
package bridge.io;

/**
* 사용자에게 게임 진행 상황과 결과를 출력하는 역할을 한다.
13 changes: 13 additions & 0 deletions src/main/java/bridge/manager/BridgeGameManager.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
package bridge.manager;

import bridge.BridgeGame;
import bridge.io.OutputView;
import bridge.io.InputManager;

public class BridgeGameManager {
private final InputManager inputManager;
private final OutputView outputView;
private final BridgeGame bridgeGame;

public BridgeGameManager(final InputManager inputManager, final OutputView outputView, final BridgeGame bridgeGame) {
this.inputManager = inputManager;
this.outputView = outputView;
this.bridgeGame = bridgeGame;
}

public void play() {