DesignPatterns에서 StructuralPatterns의 하나
'기능의 클래스계층(Implementation)'과 '구현의 클래스계층(Abstraction)'을 분리. 두개로 나눠두면 각각의 클래스계층을 독립적으로 확장할 수 있다. 기능을 추가하고 싶으면 기능의 클래스계층에 추가하고, OperatingSystem의존부분은 구현의 클래스계층에 추가한다.
Structure
Example
글씨표현예제 BridgeDisplay.java