SIDE)정책 누적 적용하기(메서드체이닝)
전략주입 구상클래스의 정책필드를 컬렉션 + 체이닝받기기능
📜 제목으로 보기
정책 누적 적용하기(메서드체이닝)
-
지난글 - SIDE)특정객체에 정책적용
-
- 현재 전략주입 구상클래스가 1개의 factory(전략객체)만 받는 상태다.
- condition전략은 여러개 받는 상태다.
-
필수로서 1개의 전략객체는 생성자 주입 받도록 유지하되, 받는 필드를 컬렉션(Set)으로 변경하고, 빈 컬렉션 초기화후 생성자에서 할당이 아닌 add하도록 변경한다.
-
추가 전략객체를 받기기능(setter/add)로 받되,
return this
를 통해 외부에서 체이닝으로 받을 수 있게 한다. 메서드명은setNext()
를 활용한다. (condition도 받으려고 addPolicy로 변경함)- 여러 구상체를 return this의 외부에서 체이닝으로 받으려면, 컬렉션 필드가 필수다.
- cf) 빌더패턴은 여러필드에 대한 서로 다른 받기기능들을 체이닝으로 사용한다.
- 여러 구상체를 return this의 외부에서 체이닝으로 받으려면, 컬렉션 필드가 필수다.
-
컬렉션 필드에 누적된 전략객체들을 for loop를 돌면서 전략메서드를 누적변수에 누적 적용한다.
파라미터로 초기값이 변수
가 넘어왔다면,누적변수로 활용
하는 센스
-
condition전략도 컬렉션필드로 여러개를 받으므로, 체이닝으로 받을 수 있게
return this
를 활용한다. -
테스트에서 할인policy가 누적적용이 잘되는지 확인한다.