브릿지 패턴
적용전 코드
//외부 APi
public class KakaoMapApi{
public void drawMap(int x,int y){
System.out.println("카카오는 " + x + "와 " + y + "로 지도를 그립니다.");
}
}
public class NaverMapApi {
Integer x;
Integer y;
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
public void sketchMap(){
if(x == null || y == null) throw new NullPointerException("x와 y는 null일 수 없습니다.");
System.out.println("네이버는 " + x + "와 " + y + "로 지도를 그립니다.");
}
}
//구현체
public abstract class MapPage {
protected final int x;
protected final int y;
protected final KakaoMapApi mapApi = new KakaoMapApi();
public MapPage(int x, int y) {
this.x = x;
this.y = y;
}
public abstract void drawPage();
}
public class MyMapPage extends MapPage {
public MyMapPage(int x, int y) {
super(x,y);
}
public void drawPage(){
System.out.println("나의 페이지에 지도 그리기");
Systme.out.println("카카오 맵 이용");
mapApi.drawMap(x,y);
}
}Bridge 패턴 적용후 코드
장점
적용가능한 경우

어댑터패턴과의 차이점
Last updated