JAVA/DesignPattern

Design Pattern 디자인 패턴 Bridge Pattern 브릿지 패턴

호두밥 2021. 12. 16. 17:30

Bridge Pattern 브릿지 패턴

구조 패턴인 브릿지 패턴은 추상화된(abstraction) 객체들과 구현(implementation)된 객체를 연결하는 데 사용되는 패턴입니다. 추상화된 객체가 인터페이스 구현 객체를 포함하도록 해서, 2개의 개념을 합칠 수 있는 형태를 말합니다. 

Bridge Pattern 브릿지 패턴의 장단점

장점

  • 플랫폼에서 독립적인 클래스를 생성할 수 있습니다.
  • 클라이언트가 높은 수준의 추상화된 객체에 접근하기 때문에 객체의 새부정보가 노출되지 않습니다.
  • 새로운 추상화 객체와 구현 객체을 독립적으로 생성할 수 있습니다. (개방폐쇄원칙)
  • 높은 수준의 추상화 객체와 인터페이스를 구현한 세부 클래스에만 집중할 수 있습니다. (단일책임원칙)

단점

  • 높은 응집도를 갖게 되어 코드가 복잡해질 수 있습니다.

Bridge Pattern 브릿지 패턴 구현

 

public abstract class Shape {
	
	private Color color;
	
	public Shape(Color color) {
		this.color = color;
	}

	abstract String getName();

	@Override
	public String toString() {
		return color.getName() + this.getName();
	}

}
public class Circle extends Shape {

	public Circle(Color color) {
		super(color);
	}

	@Override
	String getName() {
		return  "Circle";
	}
}
public class Triangle extends Shape {

	public Triangle(Color color) {
		super(color);
	}

	@Override
	String getName() {
		return "Triangle";
	}

}

 

public interface Color {
	public String getName();
}
public class Blue implements Color {

	@Override
	public String getName() {
		return "Blue";
	}

}
public class Red implements Color {

	@Override
	public String getName() {
		return "Red";
	}

}

 

public class Main {

	public static void main(String[] args) {
		
		Shape redCircle = new Circle(new Red());
		Shape blueTriangle = new Triangle(new Blue());
		
		System.out.println(redCircle);
		System.out.println(blueTriangle);
		
	}
}
RedCircle
BlueTriangle

참조