디자인 패턴의 꽃이라고 불릴만큼 많이, 다양하게 사용하는 패턴이다.알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. 즉 기존 코드의 변경 없이도 실제 로직을 바꿀 수 있게 해주는 패턴이다.1) 먼저 필요한 strategy 인터페이스를 만들어준다.2
객체가 상태에 따라 행위를 달리하도록 하는 패턴. 상태가 행위를 하게한다. 동일한 동작을 객체의 상태에 따라 다르게 처리해야할 때 사용한다.상태(State)를 인터페이스로 캡슐화한다. 내부에 상태에 따라 다르게 행동할 동작을 정의해준다. 필요한 상태 객체들이 해당 St
많은 서브 시스템을 거대한 클래스로 감싸서 외부에서는 내부 서브 시스템을 추상화한 인터페이스만 제공해준다.각 서브 시스템이 존재한다.이 서브시스템들을 하나로 감싼다.클라이언트에서는 wash만 호출하면 내부 서브시스템들이 수행된다.