📌 변경될 가능성이 높은 어떤 알고리즘을 쉽고 효과적으로 교체할 수 있도록 하는 패턴
📌 상태가 변경되면 그 상태 변경에 따라 반응하는 구조를 구현하기 위한 패턴
📌 객체생성시 클래스를 분리해 처리하도록 캡슐화 하는 패턴
📌 처리에 대한 로직은 정해져 있을때, 이 로직을 구성하는 각각의 세부항목에 대한 처리들을 다르게 정의하고자 할때 사용할 수 있는 패턴