Design Pattern_Structural Patterns_Bridge

박지홍·2026년 4월 3일

DesignPattern

목록 보기
1/12

Bridge

소개

추상적인 것과 구체적인 것을 분리하여 연결하는 패턴

  • 하나의 계층 구조일 때보다 각기 나누었을 때 독립적인 계층 구조로 발전 시킬 수 있다.

적용

before => 챔피언과 스킨을 붙여서 만듬. 클래스 수가 챔피언 수 X 스킨 수만큼 늘어남

public interface Champion extends Skin {
	void move();
    void skillQ();
	...
}

public class KDA아리 implements Champion{
	@Override
    public void move(){
    	System.out.println("KDA 아리 move");
    }
    
    @Override
    public void skillQ(){
    	System.out.println("KDA 아리 Q");
	}
    
    ...
}

public class PoolParty아칼리 implements Champion{
...
}

after => 브릿지 패턴으로 둘을 분리하여 효율적이게 됨.

public class DefaultChampion implements Champion{
	private Skin skin;
    private String name;
    
	public DefaultChampion(Skin skin, String name){
    	this.skin = skin;
        this.name = name;
    }
    
    @Override
    public void move() {
    	System.out.printf("%s %s move \n", skin.getName(), this.name);
    }
    
    ...
}

public interface Skin {
	String getName();
}

public class KDA implements Skin{
    @Override
    public String getName() {
        return "KDA";
    }
}

public class 아리 extends DefaultChampion {

    public 아리(Skin skin) {
        super(skin, "아리");
    }
}

  • 장점
    - 추상적인 코드를 구체적인 코드 변경 없이도 독립적으로 확장할 수 있다.
    • 추상적인 코드와 구체적인 코드를 분리할 수 있다.
  • 단점
    - 계층 구조가 늘어나 복잡도가 증가할 수 있다.

0개의 댓글