자바에서 인터페이스의 사용
interface move 라는 것이 있고 이넘은
up, down, left, right 라는 메서드를 가지고 있다고 하면
이녀석을 구현하는 클래스들은 move의 대상 (예를 들면 게임에서 마린, 탱크 등등)에 따라서
실제적으로 구현해야 하는 방식이 달라질 것이다.
이것을 interface를 사용하지 않으면 무언가 바뀌거나 할때마다 해당 클래스를 생성하고 있는 소스를 찾아서 하나하나 바꿔줘야 한다.
하지만 interface를 사용해서
class marineMove implements Move {
up()....
..
}
class wraithMove implements Move {
up() ..
}
해당 클래스들을 구현한 다음 다른 소스에서
Move move = getMoveService(); <- (getMoveService는 marineMove나 wraithMove중
해당되는 것을 생성하여 리턴하여 준다.)
이렇게 사용을 하면 (업캐스팅 원리)
즉, move.up().. move.down()..
이렇게 사용하면 실제 생성한 클래스의 메서드가 호출 가능하다.
실제 사용하고 있는 소스의 수정 없이도
사용이 가능하다는 말씀.