협력책임역할역할
객체지향 설계의 핵심은 역할,책임,협력이다. 협력은 애플리케이션의 기능을 구현하기 위해 메시지를 주고받는 객체들 사이의 상호작용이다. 책임은 객체가 다른 객체와 협력하기 위해 수행하는 행동이고, 역할은 대체 가능한 책임의 집합이다.책임 주도 설계라는 이름에서 알 수 있
위 코드는 변경에 취약한 클래스이다. 위 코드에서는 변경의 이유가 다양하다.새로운 할인 조건이 추가 될때isSatisfiedBy 메서드 안의 if ~ else 구문을 수정해야 한다. 물론 새로운 할인 조건이 새로운 데이터가 필요하다면 DiscountCondition에