논리적으로 할인 모델은 무엇이든 될 수 있으므로 모든 사례를 미리 프로그래밍 할 수 있다고 가정 할 수는 없습니다. 귀하의 질문에 대답하는 사람이 실제로 필요한 것을 완전히 확신 할 수는 없습니다. 그러나 실제 세계에서 발견되는 일반적인 종류의 할인을받는다고 가정하면 ...
큰 문제는 할인이 프로그램 될지 또는 사용자가 입력하도록할지 여부입니다. 위에서 언급 한 바와 같이, 당신은 할 수 결코 그들을 프로그래밍 할 수 없지만 보통의 목표는 오히려 그들 모두를 프로그래밍보다, 그것을 일반적인 경우에 같은 더 많은 데이터 항목을 만들려고하는 것입니다. 이는 프로그래머가 모든 할인을 작성하는 데 사용되는 경우에도 어느 정도 적용됩니다.
Martin Fowler는 회계 시스템에 대한 "게시 규칙"을 구현하는 방법의 일부로 "분석 패턴 : 재사용 가능한 개체 모델"에서 "개별 인스턴스 방법"을 언급하지만 규칙은 사용자와 상당히 비슷해 보입니다. 더 자세하게 설명하지만 저작권이있는 저작물이며
사용자 인터페이스의 경우 상당히 간단한 유스 케이스를 작성하거나 인터프리터 및 쿼리 빌더를 빌드해야합니다. 아마도 간단한 경우를위한 것이고 하나는 더 진보 된 것일 수도 있습니다. 인터프리터를 작성하는 경우 파서 생성기와 비교하여 코드를 작성하는 것이 비교적 간단하고 구문 분석 시간이 느려질 수 있기 때문에 인터프리터 패턴을 사용하는 것이 좋습니다. 파서 생성기를 사용하는 것을 좋아한다면 멈추지 않을 것입니다.
통역사로 모든 것을 시도하지 마십시오. 언젠가는 자신의 언어로 프로그래밍하기 때문에 실제 언어를 사용할 수도 있습니다. 해석 된 언어가 함수를 지원하는 경우 (아마도 함수 호출을 지원해야합니다. 정의하는 것이 모호한 경우) 실제 언어로 코딩 될 수 있습니다. 당신이해야 할 것 보다이 길을 더 멀리 가지 마십시오.
당신이 무엇을하든, 결국 누군가는 프로모션의 영업일 기준 30 일 이내에 구매했는지 여부에 따라 할인을 원할 것입니다. 영업일은 상점의 우편 번호 또는 고객의 전화 번호로 정의 된 지역에 휴일이없는 경우에만 계산됩니다. 우편 번호. 따라서 완벽한 시스템을 미리 설계하지 마십시오. 때로는 새로운 종류의 할인 코드를 작성하여 그에 따라 디자인해야한다고 가정하십시오.