📜 제목으로 보기

정책 누적 적용하기(메서드체이닝)

  1. 필수로서 1개의 전략객체는 생성자 주입 받도록 유지하되, 받는 필드를 컬렉션(Set)으로 변경하고, 빈 컬렉션 초기화후 생성자에서 할당이 아닌 add하도록 변경한다. 272efc7f-b65e-461e-ae07-04c7b5e8dbd1

    image-20220712101709761

  2. 추가 전략객체를 받기기능(setter/add)로 받되, return this를 통해 외부에서 체이닝으로 받을 수 있게 한다. 메서드명은 setNext()를 활용한다. (condition도 받으려고 addPolicy로 변경함)

    • 여러 구상체를 return this의 외부에서 체이닝으로 받으려면, 컬렉션 필드가 필수다.
      • cf) 빌더패턴은 여러필드에 대한 서로 다른 받기기능들을 체이닝으로 사용한다.

    141321f5-1ef4-481f-b2c6-de7a2314f6da

    image-20220712102106406

  3. 컬렉션 필드에 누적된 전략객체들을 for loop를 돌면서 전략메서드를 누적변수에 누적 적용한다.

    • 파라미터로 초기값이 변수가 넘어왔다면, 누적변수로 활용하는 센스

    2d1d1419-9a0c-44d3-83aa-923a689cb7fb

    image-20220712102413917

  4. condition전략도 컬렉션필드로 여러개를 받으므로, 체이닝으로 받을 수 있게 return this를 활용한다.

    image-20220712103618439

  5. 테스트에서 할인policy가 누적적용이 잘되는지 확인한다.

    image-20220712103659338