“시시각각 변하는 사용자의 요구 사항”

→ 이렇게 자주 변하는 요구 사항에 적절히 대응하려면?

  1. 엔지니어링적 비용의 최소화
  2. 새로 추가한 기능을 비교적 쉽게 구현
  3. 유지 보수 용이

“동작 파라미터화 : Behavior Parameterization”


#2.1. 변화하는 요구사항에 대응하기

#2.1.1. 첫 번째 시도 : 녹색 사과 필터링

enum Color {
	RED, GREEN
}
public static List<Apple> filterGreenApples(List<Apple> inventory) {

	List<Apple> result = new ArrayList<>();

	for (Apple apple : inventory) {
		if (GREEN.equals(apple.getColor)) {
			result.add(apple);
		}
	}

	return result;
}