ssoonan / starcraft-architecture

스타크래프트 유닛, 건물의 아키텍처 설계 by java

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Starcraft Architecture

목표

스타크래프트 유닛. 빌딩의 아키텍처를 Java (추상)클래스, 인터페이스를 통해 구현하는 것

기대 효과

최소한의 Java 문법만 알던 상태에서 Java 문법, 패키지 구조에 익숙해지고
+ 객체지향, 설계, 다형성의 관점을 익히는 것


설계의 기본 룰 (by Clean Architecture)

클린 아키텍처 책이 말하는 건 하나다.

실제 프로그램이 실행되는 제어 흐름과 반대가 되게 계층을 나눠서 설계하라

의존성 역전, SOLID 원칙 등 여러가지가 나오지만 아직 거기까진 잘 모르겠다.

대신 추상화를 제일 많이 시킨(=공통점의 공통점) 고수준일수록 변화가 있으면 안 된다.

계층 구조

기본은 추상 클래스 Unit

Actionable(움직일 수 있는 경우), Attakable(공격 명령 할 수 있는 경우), Stop(움직이지 못 하는 경우) Ground(지상), Air(공중) 이 5가지를 인터페이스화, 총 8개의 상속된 추상클래스를 만들었음. 이를 상속받아 구체적인 유닛들의 클래스를 만들어갈 예


의문점

  • Actionable, Attackable을 인터페이스로 만들어 추상화를 했지만, 대부분의 경우 Actionable을 포함함. 이를 구현하는 별도의 추상 클래스를 만들어야 하는가?
  • Unit.java에 인터페이스 다 때려박았는데 이렇게 해도 되나

About

스타크래프트 유닛, 건물의 아키텍처 설계 by java

License:MIT License


Languages

Language:Java 100.0%