Skip to content

Commit

Permalink
feat(data) 지하철 사전 등록 정보 초기 설정
Browse files Browse the repository at this point in the history
- 지하철역 교대역, 강남역 등  명시 내용 등록
- 지하철 노선 2호선, 3호선, 신분당선 등록
- 노선 초기 설정 역 등록

Closes techeer-sv#1, techeer-sv#2, techeer-sv#3
  • Loading branch information
kwongwangjae committed May 24, 2024
1 parent 70aede1 commit 3e47622
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 3 deletions.
6 changes: 3 additions & 3 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# 지하철 노선도 미션

## 초기 설정
- [ ] #1 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록
- [ ] #2 지하철 노선으로 2호선, 3호선, 신분당선 등록
- [ ] #3 노선에 역 순서 등록
- [X] #1 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록
- [X] #2 지하철 노선으로 2호선, 3호선, 신분당선 등록
- [X] #3 노선에 역 순서 등록
- 2호선: 교대역 - 강남역 - 역삼역
- 3호선: 교대역 - 남부터미널역 - 양재역 - 매봉역
- 신분당선: 강남역 - 양재역 - 양재시민의숲역
Expand Down
47 changes: 47 additions & 0 deletions src/main/java/subway/data/DataInitializer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package subway.data;

import java.util.List;
import java.util.Map;

import subway.domain.Line;
import subway.domain.LineRepository;
import subway.domain.Section;
import subway.domain.SectionRepository;
import subway.domain.Station;
import subway.domain.StationRepository;

public class DataInitializer {
private final LineRepository lineRepository;
private final StationRepository stationRepository;
private final SectionRepository sectionRepository;

public DataInitializer() {
this.lineRepository = new LineRepository();
this.stationRepository = new StationRepository();
this.sectionRepository = new SectionRepository();
}


public void initializeStations() {
List<String> stationData = List.of("교대역", "강남역", "역삼역", "남부터미널역", "양재역", "양재시민의숲역", "매봉역");
stationData.forEach(stationName -> stationRepository.addStation(new Station(stationName)));
}

public void initializeLines() {
Map<String, List<String>> lineData = Map.of(
"2호선", List.of("교대역", "강남역", "역삼역"),
"3호선", List.of("교대역", "남부터미널역", "양재역", "매봉역"),
"신분당선", List.of("강남역", "양재역", "양재시민의숲역")
);

lineData.forEach((lineName, stationNames) -> {
Line line = new Line(lineName);
Section section = new Section(line);
stationNames.forEach(stationName -> section.addStation(new Station(stationName)));
lineRepository.addLine(line);
sectionRepository.addSection(section);
});
}


}
18 changes: 18 additions & 0 deletions src/main/java/subway/domain/Section.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package subway.domain;

import java.util.ArrayList;
import java.util.List;

public class Section {
private Line line;
private List<Station> stations;

public Section(Line line) {
this.line = line;
this.stations = new ArrayList<>();
}

public void addStation(Station station) {
stations.add(station);
}
}
11 changes: 11 additions & 0 deletions src/main/java/subway/domain/SectionRepository.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package subway.domain;

import java.util.ArrayList;
import java.util.List;

public class SectionRepository {
private static final List<Section> sections = new ArrayList<>();

public static void addSection(Section section) {sections.add(section);}

}
20 changes: 20 additions & 0 deletions src/main/java/subway/service/SubwayService.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package subway.service;

import subway.data.DataInitializer;

public class SubwayService {
private final DataInitializer dataInitializer;

public SubwayService() {
this.dataInitializer = new DataInitializer();
}

public void settingData() {
dataInitializer.initializeStations();
dataInitializer.initializeLines();
}




}

0 comments on commit 3e47622

Please sign in to comment.