[Java] 추상 클래스/메소드의 도출
yeoseon opened this issue · comments
Yun Yeoseon (Row) commented
Enum 에서의 추상 메소드 사용
아이템 34. int 상수 대신 열거 타입을 사용해라 참고
인터페이스의 구현체가 중복되는 경우 추상 클래스의 도출
next-step/java-bowling#116 (comment) 참고
변경 전
State 인터페이스
package bowling.domain.state;
public interface State {
public State play(int newFelledPin);
boolean isEndedState();
String getString();
}
Strike (구현체)
...
public class Strike implements State {
....
@Override
public boolean isEndedState() {
return true;
}
....
}
Playing 클래스 (구현체)
....
public class Playing implements State{
....
@Override
public boolean isEndedState() {
return false;
}
....
}
변경 후
이 외에도 여러 상태가 있는데, 각 상태별로, isEndedState()
가 중복되어 있었다.
따라서 추상 클래스로 분리해주었다.
Finished 추상 클래스
package bowling.domain.state;
abstract class Finished implements State {
@Override
public boolean isEndedState() {
return true;
}
}
NotFinished 추상 클래스
package bowling.domain.state;
abstract class NotFinished implements State {
@Override
public boolean isEndedState() {
return false;
}
}
Strike 클래스
public class Strike extends Finished {
...
}
Playing 클래스
public class Playing extends NotFinished {
...
}