들어가는 글: 장수(General)들을 위한 자료 구조를 만들어봅니다.
깃헙 주소: https://github.com/yudong80/coding-samguk
다음은 2화에서 다룬 (11번 낙양) 에는 17명의 장수가 있습니다.
실제로 어떤 장수들이 있을까요? (장수 목록)
이렇게 16명이 있고 , 1명(유연)이 더 있습니다.
이와 같이 장수 목록을 저장하고 있는 자료 구조를 작성합니다.
장수는 크게
* 아직 태어나지 않는 장수
* 재야 장수
* 재직 장수
* 사망 장수
로 나뉩니다.
장수(General) 객체는 매번 필요할 때 생성하는 것이 아니라 한번만 생성하고 필요할 때 조회하는 것이 좋습니다. 편의상 장수 이름(예, 조조)를 key로 한 Map을 생성하였습니다.
ISSUE: 동일한 이름의 장수를 구별할 수 없는 문제가 있습니다.
클래스: coding.samguk.GeneralsMap.java
깃헙 링크: https://github.com/yudong80/coding-samguk/blob/main/V0/src/coding/samguk/GeneralsMap.java
1) 데이터를 로딩
2) 자료 구조를 생성
이 클래스는 싱글턴 패턴(singleton pattern)으로 인스턴스가 1개만 생성되며
이 자료구조를 사용할 때 GeneralsMap.getInstance()를 호출합니다.
아래와 같이 간단한 테스트 코드를 만들어보았습니다.
등록한 17명의 장수를 (11. 낙양) 땅에 등록하고 그 정보를 출력합니다.
클래스: coding.samguk.App.java
메서드: test낙양장수들()
깃헙링크: https://github.com/yudong80/coding-samguk/blob/main/V0/src/coding/samguk/App.java
실행 결과는 다음과 같습니다.
낙양의 총 병사는 22900 명이고
장수는 17명이고
장수 목록은 {조조, 순욱, 곽가, 하우연 .. 유연 }
입니다.
이 강의는 코드 위주로 빠르게 진행해보는 것이 목적입니다.
깃헙 커밋: https://github.com/yudong80/coding-samguk/commit/fee46ebf5371d78c4f3320185edec4b0705f855b
흥미가 닿는데 까지 빠르게 적어볼께요.
감사합니다.
2021.8.17