728x90
전략 패턴?
전략 패턴은 '클라이언트가 전략을 생성해 전략을 실행할 컨텍스트에 주입해주는 패턴'입니다.
책의 예제에서는 무기-군수장교-군인 으로 묘사되었습니다. 무기는 전략, 군수장교는 클라이언트, 군인은 컨텍스트입니다.클래스 다이어 그램으로 살펴보면 위와 같은데요. 전략 패턴의 Interface 를 함수형 인터페이스로 구성하고, 람다를 적용해보겠습니다.
전략 패턴에 람다 적용하기
Lambda 와 MethodReference 도 같이 적용해보았다.
전략 패턴에 Lambda 를 쓰면 얻을 수 있는 장점
우선, AddStrategy, SbustractStrategy 등 필요한 전략들마다 전략 인터페이스 구현체 클래스를 만들어 줄 필요가 없어집니다. 다만, DI 를 이용할 때는 Strategy 구현체가 필요하므로 이용 못한다는 단점이 있다.
사실은, 구현체를 만들기만 하면 람다로 표현해서 사용할 수 있다.이것을 람다식으로 표현하면 아래와 같다.
'[Book] 공부하기 > 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
인터페이스 스펙 변화의 이유 : 디폴트 메서드와 정적 메서드 살펴보기 (0) | 2025.07.31 |
---|---|
컬렉션 스트림과 람다식. 생성자 레퍼런스. (0) | 2025.07.30 |
자바 8 람다와 자바 API 제공 함수형 인터페이스 (0) | 2025.07.30 |
스프링 MVC 이용 게시판 구축 (0) | 2025.07.29 |
[ PSA - 일관성 있는 서비스 추상화 ] (0) | 2025.07.28 |