2013년 8월 14일 수요일

[3주차 3일] 인터페이스(Interface)

: 사용 객체와 사용당하는 객체 사이의 호출 규칙
  (자동차 ==> [타이어] <== 한국타이어, 금호타이어 등등 )

ex>
  어뎁터패턴을 적용한 Car를 좀더 세련된 모양세로 Tire의 규칙을 정해보도록 하자.

#해결
: Tire클래스를 인터페이스로 변경하고,  각각의 타이어에 Tire인터페이스를 implements 시켜주면 된다.

public interface Tire {
/*public*/ /*abstract*/ String getMaker();
public abstract double getRadius();

}


한발더 나가 간다면 HankookTire와 KumhoTire는 공통 점이 많으므로 BaseTire를 생성해서 일반화(Gerneralization)을 시켜주면 더욱 좋다.


abstract public class BaseTire implements Tire {
protected String maker;
protected double radius;

public String getMaker() {
return maker;
}

public double getRadius() {
return radius;
}

}



* 인터페이스의 메서드는 단지 규칙으로 역할을 하기 때문에 구현하지 않는다.
   => 인터페이스의 모든 메서드는 추상메서드 이다.
   => abstract 생략가능

* 규칙은 반드시 공개되어야 하기 때문에, public이다.
   => public 은 생략가능

댓글 없음:

댓글 쓰기