클린하게~ 야구게임을 만들어보자
Game은 핵심 비즈니스 로직을 가지고 있으므로, UI에 의존해서는 안된다. UI가 Game을 의존하도록 하라.
소켓 통신을 통해서 통신할 수도 있고,
단순히 터미널을 통해서도 통신할 수 있다.
따라서,
- 입출력 방식을 추상화
- 각 방식에 맞는 입출력 메세지들을 추상화
한다.
로직이 복잡해진다 -> 테스트하고 싶다.
로직이 복잡해진다 -> 따로 분리하여 클래스로 분리해도 될 로직이다.
클래스 분리의 이점: 복잡한 로직 수정시, 캡슐화로 인해 영향의 범위를 복잡한 로직으로 한정지을 수 있다.
App이 담당한다.