: 사용 객체와 사용당하는 객체 사이의 호출 규칙
(자동차 ==> [타이어] <== 한국타이어, 금호타이어 등등 )
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 은 생략가능
댓글 없음:
댓글 쓰기