패턴은 경험의 산물
패턴은 지식 전달과 커뮤니케이션의 수단으로 활용 가능
→ 가장 중요한 것은 패턴의 이름!
패턴은 공통으로 사용할 수 있는 역할, 책임, 협력의 템플릿
중요한 것은 패턴을 따르면 특정한 상황에 적용할 수 있는 설계를 쉽고 빠르게 떠올릴 수 있다는 것!
패턴의 구성 요소는 클래스가 아니라 “역할”이다.
→ 즉, 구체적인 구현 방법을 강조하는 것은 아님!
대부분의 디자인 패턴은 협력을 일관성 있고 유연하게 만드는 것을 목적으로 함!
→ 각 디자인 패턴은 특정한 변경을 캡슐화하기 위한 독자적인 방법을 정의
Movie와 DiscountPolicy의 상속 계층을 합성 관계로 유지하는 것 → STRATEGY 패턴
Movie와 AmountDiscountMovie & PercentDiscountMoive는 상속을 사용하여 캡슐화 → 추상 메서드를 이용하여 변경을 캡슐화