동작 파라미터화를 통해
이 동작 파라미터화 개념은 전략 디자인 패턴이다.
객체들이 할 수 있는 행위 각각에 전략 클래스 구현, 유사한 행위들을 캡슐화하는 인터페이스를 정의하여 객체의 행위를 동적으로 바꾸고 싶을 때 직접 행위 수정이 아닌 전략 수정으로 행위를 유연하게 확장하는 방법.
전략 패턴을 사용하지 않으면 OCP에 위배 되고 확장시 메서드 중복 문재가 발생 -> 이를 인터페이스로 빼게 된다면, 해당 Strategy에 대한 인터페이스만 구현하면 됨.
다른 전략들에 대한 확장도 고려, 어떤 메서드를 실행 시키고자 한다면 해당 전략이 가지고 있는 메서드를 실행시키면 됨.
디자인패턴 전략 패턴 ( Strategy Pattern ) :: victolee
전략 디자인 패턴을 사용하면, 하나의 전략 인터페이스를 생성하고 그를 구현하는 클래스를 만들어 넘겨주면, 해당 동작이 파라미터로 넘어가 실행될 수 있다.
더 나아가서 이러한 불필요한 클래스 생성 없이
new ApplePredicate() { 여기다가 구현!!! }
(Apple apple) -> RED.equals(applel.getColor())
를 이용하여 동작 파라미터화 시킬 수 있다.
그리고 람다를 이용하면 익명클래스의 기본이 되는 인터페이스를 import해올 필요가 없다. 자바스크립트 같다…