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
참조
'JAVA > DesignPattern' 카테고리의 다른 글
Design Pattern 디자인 패턴 Decorator Pattern 데코레이터 패턴 (0) | 2021.12.18 |
---|---|
Design Pattern 디자인 패턴 Composite Pattern 컴포지트 패턴 (0) | 2021.12.18 |
Design Pattern 디자인패턴 Adapter Pattern 어답터 패턴 (0) | 2021.12.16 |
Design Pattern 디자인패턴 Prototype Pattern 프로토타입 패턴 (0) | 2021.12.15 |
Design Pattern 디자인 패턴 Builder Pattern 빌더 패턴 (0) | 2021.12.15 |