식료품 가게에서 고객 용 영수증을 출력하는 간단한 프로그램을 작성하는 과제를 받았습니다. 기본 판매 세은 서적, 식품 및 면제 대상 의약품을 제외한 모든 제품에 대해 10 %의 비율로 적용 가능합니다. 수입 관세은 모든 수입품에 대해 면제가없는 5 %의 추가 판매 세가 적용됩니다.객체 지향 디자인
샘플 입력 : $ 1에서 1 권, $ 5에서 가져온 초콜릿 바 등 1 개.
가능한 한 객체 지향적으로 프로그램을 만들고 싶습니다. 따라서 내 계층 구조는 다음과 같습니다.
최상위 계층은 추상 클래스 Item (이름, 가격)입니다. 그러면 SaleTaxItem 클래스 (세금 10 %를 지불해야하는 항목)를 갖게되고 NonSaleTax 항목 클래스가 Item에서 확장됩니다. 문제는 위의 각 클래스 안에 isImported라는 부울 변수를 만들어서 5 % 더 청구 할시기를 알아야한다는 것입니다. 또는 가져온 항목에 대한 새 클래스를 만들어야합니까?
디자인이이 과제에서 매우 중요하므로 완벽하게 만들고 싶습니다. 감사!
왜 그냥 방법을'쓸 경계가 될 수 getTax()? 10 % + 10 % + 5 %의 수입 관세가 부과 될 수있는 품목은? 부울 값은 확장 성이 좋은 선택이라고 생각하지 않습니다. 언젠가 우리가 새로운 세금을 도입했다고 상상해보십시오 : 새로운 부울을 도입해야합니까? int로 인코딩해야합니까? –
예. getTax()를 사용하여 현재 부울 값을 사용하여 5 % 수입세를 부과할지 여부를 결정합니다. 그리고 Item 클래스에서 is_import boolean을 구현합니다. 내가 부울을 사용하지 않는다면 무엇을 사용해야합니까? –