알고리즘을 캡슐화 해서 교환해서 사용할 수 있도록 만든 패턴
달라지는 부분을 찾아서 나머지 코드에 영향을 주지 않도록 '캡슐화'
구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다.
상속보다는 구성을 활용한다.
전문용어 공유
의사소통 편리
디자인에 더 오래 집중 가능
오해의 소지를 줄일 수 있음