-
Notifications
You must be signed in to change notification settings - Fork 0
1주차 금요일 그룹 5
hek edited this page Jul 1, 2024
·
2 revisions
- dropwhile, takewhile로 개선 가능할 듯
- Piece에서 가능한 모든 좌표를 반환하게 한 뒤, Game에서 필터링하면 책임 분리가 되지 않겠나??
- 책임을 누가지는지 항상 생각을 하는 것이 큰 이슈인거 같다.
- 누가 무슨 클래스를 import하는지가 제일 중요하다
- Piece를 VO로 구현했는가?
- 체스게임과 보드의 책임의 분리?
- 상수를 어떻게 관리해야하는가?
- 피스는 보드를 알아야하는가?피스의 무브 구현에 관해서
- 추상 클래스를 할거라면 해당 클래스에 해당하는 타입은 없어도 되는게 아닌지?dropWhile, takeWhile stream에 대해서GUI 를 통해서 source position 받기
- Piece 를 추상클래스로 꼭 해야할까? -> 각 기물 클래스를 만드는 게 필요한가?파라미터라이즈테스트, CSV소스의 필요성boolean flag 없이 가능할까? 리팩토링
- move에서 turn을 굳이 관리해야 하나?
- Piece의 Color로도 turn을 관리할 수 있음. 굳이 board에서 turn을 몰라도 된다.
- Piece를 추상 클래스로 해야하나?
- 지금 같은 경우는 Pawn만 특이하니까 Piece에서 관리했는데 만약 추가적인 기물이 추가된다면 다형성 이용하는게 좋을 것 같다.
- method early return
- board가 너무 역할이 비대해지니까, 중간 레이어를 만들어서 BoardService ?
- Board는 정말 8x8 판에 대한 역할만 하고, Collection 같은 역할만 함(get, set)
- BoardService에서 piece 끼리 이동을 구현하는 방식도 좋아 보인다?
- 설계하는데 오래 걸리더라도 책임을 분리해보자.
-
Board 클래스와 ChessGame 클래스의 역할이 분리되어야 하는 이유를 다시 생각해보았다.
-> Board 클래스에서 지고있는 책임이 너무 많기 때문. -
현재 ChessGame에서 담당하는 역할이 많지 않아 역할 분리의 의미가 흐려지는 것 같다.
그러나 이후에 게임 자체와 관련되어 구현될 추가 기능(턴제) 등을 생각하면
Board와 ChessGame의 역할과 책임을 분리하는 것이 나을 것 같다는 생각이 듦.