전략 패턴이란?
전략 패턴(Strategy Pattern)이란? 객체가 할 수 있는 행위에 대한 생성하여 해당 행위들을 캡슐화(인터페이스화) 하여 사용하는 것이다. 즉, 행위를 각각의 전략 클래스로 생성하고 수정이 필요한 경우 전략을 바꾸는 것으로 행위를 수정하도록 한다. 왜 전략 패턴을 사용해야 할까? 예를 들어 움직이는 Bus, Train 이라는 객체가 있다고 하고 각각 move() 함수를 통해서 움직인다. 그런데, Bus는 도로로 Train은 선로로 움직인다. 만약 이때 버스가 더 이상 길이 아니라 선로로 움직인다고 가정할 때, 버스의 move() 메소드를 선로로 움직이는 로직으로 수정해야 한다. 이때 두 가지 문제가 발생한다. OCP (Open-Closed Principle)에 위배 : 수정에 닫혀있어야 하는데, 메소드를 직접 수정 확장이 될 경우 메서드 중복 문제 : 메소드를 가진 여러 객체가 있을 때 일일이 수정을 해아함 이 때 전략 패턴을 사용하면, 위 두 문제를 마주하지…