• 추상과 구현을 분리하여 독립적으로 관리하도록 함
  • 어댑터 패턴과 같이 사용되는 경우가 많음 - 구현부분
  • Aggregation(집합관계)을 사용
  • 추상을 나타내는 객체와 구현을 나타내는 객체가 동시에 존재하며, 추상을 나타내는 객체가 인스턴스화 될 때 주어진 구현이 알려져야 함
  • 실행 시 두 객체의 연결이 바뀔 수 있기 때문에 유연한 관계를 가지고 있음