तार्किक रूप से, एक डिस्काउंट मॉडल कुछ भी हो सकता है , इसलिए आप यह नहीं मान सकते हैं कि आप सभी मामलों को पहले से प्रोग्राम कर सकते हैं। न ही आपके प्रश्न का उत्तर देने वाला कोई भी व्यक्ति पूरी तरह से निश्चित हो सकता है कि आपको वास्तव में क्या चाहिए। हालाँकि, यह मानते हुए कि आप वास्तविक दुनिया में पाए जाने वाले सामान्य प्रकार के छूट प्राप्त करते हैं ...
एक बड़ा सवाल यह है कि क्या छूट को प्रोग्राम किया जाएगा, या यदि आप चाहते हैं कि उपयोगकर्ता उन्हें दर्ज करें। जैसा कि ऊपर उल्लेख किया गया है, आप कभी भी उन्हें क्रमादेशित नहीं कर सकते हैं , लेकिन आमतौर पर लक्ष्य उन सभी को प्रोग्रामिंग करने के बजाय, सामान्य मामलों के लिए अधिक डेटा प्रविष्टि बनाने की कोशिश करना है। यह कुछ हद तक लागू होता है, भले ही प्रोग्रामर का उपयोग सभी छूट बनाने के लिए किया जाता है।
मार्टिन फाउलर ने "व्यक्तिगत पैटर्न विधि" का विश्लेषण "विश्लेषण पैटर्न: पुन: प्रयोज्य वस्तु मॉडल" में कहा है कि लेखा प्रणालियों के लिए "पोस्टिंग नियम" को कैसे लागू किया जाए, लेकिन नियम आपके लिए काफी हद तक समान हैं। मैं और अधिक विवरण दूंगा, लेकिन यह कॉपीराइट का काम है और
उपयोगकर्ता इंटरफ़ेस के लिए, आपको या तो उपयोग-मामलों के साथ आने की आवश्यकता है जो काफी सरल हैं, या फिर एक दुभाषिया और क्वेरी बिल्डर का निर्माण करें। संभवतः दोनों, साधारण मामलों के लिए एक और एक अधिक उन्नत। यदि आप एक दुभाषिया लिखते हैं, तो यह संभवतः दुभाषिया पैटर्न का उपयोग करने के लिए काफी अच्छा मामला है, क्योंकि यह एक पार्सर जनरेटर की तुलना में कोड के लिए अपेक्षाकृत सरल है, और धीमी पार्स समय शायद वास्तव में कोई फर्क नहीं पड़ेगा। (यदि आप पार्सर जनरेटर का उपयोग करना पसंद करते हैं तो मुझे आपको रोकना नहीं चाहिए)।
एक दुभाषिया के साथ सब कुछ करने की कोशिश मत करो - हालांकि कुछ बिंदु पर आप अपनी खुद की क्रमी भाषा में प्रोग्रामिंग कर रहे हैं, इसलिए आप एक वास्तविक का उपयोग कर सकते हैं। यदि आपकी व्याख्या की गई भाषा फ़ंक्शंस का समर्थन करती है (यह संभवतः उन्हें कॉल करने का समर्थन करना चाहिए - उन्हें परिभाषित करना संदिग्ध है) जिन्हें वास्तविक भाषा में कोडित किया जा सकता है। इस सड़क से और नीचे मत जाओ, जहां तक आपको जाना है।
कोई फर्क नहीं पड़ता कि आप क्या करते हैं, आखिरकार कोई चाहेगा कि वे छूट के आधार पर चाहें कि वे प्रचार के 30 व्यावसायिक दिनों के भीतर खरीदे गए हैं - जहां व्यवसाय के दिनों की गणना केवल तब होती है जब दुकान के डाक कोड या ग्राहक के द्वारा परिभाषित क्षेत्र में कोई छुट्टी नहीं थी डाक कोड। तो पहले से ही सही प्रणाली को डिजाइन करने की कोशिश न करें - मान लें कि आपको कभी-कभी नए प्रकार के छूटों के लिए कोड लिखने और तदनुसार डिजाइन करने की आवश्यकता होगी।