Modern Java In Action - (2) 동작 파라미터화 코드 전달하기

동작 파라미터화를 통해

  • 리스트에 모든 요소에 어떤 동작 수행
  • 리스트 관련 작업 후 어떤 동작 수행
  • 에러시 정해진, 또는 다른 동작 수행 이 가능하다.

이 동작 파라미터화 개념은 전략 디자인 패턴이다.

전략 디자인 패턴

객체들이 할 수 있는 행위 각각에 전략 클래스 구현, 유사한 행위들을 캡슐화하는 인터페이스를 정의하여 객체의 행위를 동적으로 바꾸고 싶을 때 직접 행위 수정이 아닌 전략 수정으로 행위를 유연하게 확장하는 방법.

전략 패턴을 사용하지 않으면 OCP에 위배 되고 확장시 메서드 중복 문재가 발생 -> 이를 인터페이스로 빼게 된다면, 해당 Strategy에 대한 인터페이스만 구현하면 됨.

다른 전략들에 대한 확장도 고려, 어떤 메서드를 실행 시키고자 한다면 해당 전략이 가지고 있는 메서드를 실행시키면 됨.

디자인패턴 전략 패턴 ( Strategy Pattern ) :: victolee

전략 디자인 패턴을 사용하면, 하나의 전략 인터페이스를 생성하고 그를 구현하는 클래스를 만들어 넘겨주면, 해당 동작이 파라미터로 넘어가 실행될 수 있다.

더 나아가서 이러한 불필요한 클래스 생성 없이

  • 익명클래스 new ApplePredicate() { 여기다가 구현!!! }
  • 람다 (Apple apple) -> RED.equals(applel.getColor())

를 이용하여 동작 파라미터화 시킬 수 있다.

그리고 람다를 이용하면 익명클래스의 기본이 되는 인터페이스를 import해올 필요가 없다. 자바스크립트 같다…


minzoovv
Written by@minzoovv
성장하고 있는 개바라기 입니다 :D

GitHubInstagram