Search

Bridge 패턴

Created
2023/08/18 10:23
이전 글을 유심히 읽어야한다. 위 글의 CarStore에서 운용하는 Car와 CarOptionFactory는 Bridge 패턴으로 구현되었다.
Image from GeeksforGeeks
일반적으로 객체의 구현인 기능은 추상화에 달려있고, 객체의 행위인 메서드는 인터페이스에 달려있다. 추상화를 통해 객체들의 기능이 독립적으로 변형 가능하도록 만들면서, 동시에 인터페이스를 통해 객체들의 행위를 공통적으로 확장 가능하도록 만드는 것이 Bridge 패턴이라고 볼 수 있다.
public void getNormalScenario(CarStore store) { if (!store instanceof NormalCarStore) { return; } Car granduer = store.releaseCar("GRANDUER", new PrestigeCarOptionFactory()); Car sonata = store.releaseCar("SONATA", new BasicCarOptionFactory()); // ... granduer.fullAccelerate(); sonata.fullAccelerate(); }
Java
복사
이전 코드를 예시로 위와 같이 Bridge 패턴을 만족시킬 수 있다. 결과적으로 추상 클래스인 Car로 업 캐스팅하여 객체를 운용할 수 있고, 그 과정에서 상점의 메서드 내부에서는 인터페이스를 이용하도록 만들어 인터페이스의 구현체를 주입하여 객체를 생성할 수 있도록 했다.