새로운 할인 정책 개발

// 인터페이스 정의

package hello.core.discount;

import hello.core.member.Member;

public interface DiscountPolicy {
		
		/**
			@return
		**/
		int discount(Member member, int price);

스크린샷 2024-02-21 160708.png

// [변경] 정률 % 할인 정책

package hello.core.discount;

import hello.core.member.Grade;
import hello.core.member.Member;

public class RateDiscountPolicy implements DiscountPolicy {
		private int discountPercent = 10;

		@Override
		public int discount(Member member, int pride) {
				if (member.getGrade() == Grade.VIP) {
						return price * discountPercent / 100;
			  } else {
						return 0;
				}
		}
}

스크린샷 2024-02-21 164451.png

새로운 할인 정책 적용과 문제점

문제점

public class OrderServiceImpl implements OrderService {
		// private final DiscountPolicy discountPolicy = new FixDicountPolicy();
		private final DiscountPolicy discountPolicy = new RateDiscountPolicy();