구조 패턴이란 작은 클래스들을 상속이나 합성(composite)을 사용하여 더 큰 클래스를 생성하는 방법을 제공하는 패턴이다.

이 패턴을 사용하면, 서로 독립적으로 개발한 클래스를 마치 하나의 라이브러리처럼 사용할 수 있다. 또한, 여러 인터페이스를 합성하여 서로 다른 인터페이스들의 통일된 추상을 제공한다.

구조 패턴의 중요한 포인트는 인터페이스나 구현을 복합하는 것이 아니라 객체를 합성하는 방법을 제공한다는 점이다. 이는 컴파일 단계가 아닌 런타임 단계에서 복합 방법이나 대상을 변경할 수 있다는 점에서 유연성을 갖는다.

Adapter pattern

Flyweight Pattern