- 개발 시간을 단축할 수 있다.
- 변경에 유리한 유연한 설계가 가능하다.
- 표준화가 가능하다. (JDBC - 자바에서 정해놓은 인터페이스 집합, 내용만 바꿔서 사용가능. 즉 표준화 시켜놓음)
- 서로 관계없는 클래스들을 관계를 맺어줄 수 있다.
- Unit > GroundUnit > Marine, SCV, Tank
- Unit > AirUnit > Dropship
- SCV, Tank, Dropship을 공통으로 묶어내고 싶다! -> 인터페이스 활용
- Repairable > SCV, Tank, Dropship
- 인터페이스(Repairable)를 통해 구현
interface Repairable { }
class SCV extends GroundUnit implements Repairable {
}
class Tank extends GroundUnit implements Repairable {
}
class Dropship extends AirUnit implements Repairable {
}
void repair (Repairable r) {
if (r instanceof Unit) {
Unit u = (Unit)r;
while(u.hitPoint!=u.MAX.HP) {
u.hitPoint++;
}
}
}