मैं एक पुस्तक लाइब्रेरी ऐप बना रहा हूं, मेरे पास एक अमूर्त पुस्तक कक्षा है, दो प्रकार की व्युत्पन्न किताबें और दो एम्स जो पुस्तक की शैली को बचाएंगे। प्रत्येक पुस्तक एक शैली या उससे अधिक से संबंधित हो सकती है।2 व्युत्पन्न कक्षाओं से एम्स की सही सूची का चयन
abstract public class Book
{
public int Price { get; set; }
...
}
public enum ReadingBooksGenre
{
Fiction,
NonFiction
}
public enum TextBooksGenre
{
Math,
Science
}
abstract public class ReadingBook : Book
{
public List<ReadingBooksGenre> Genres { get; set; }
}
abstract public class TextBook : Book
{
public List<TextBooksGenre> Genres { get; set; }
}
अब मैं किताब शैलियों (कोई डबल छूट, केवल उच्चतम छूट गणना की जाती है) के आधार पर छूट बचाना चाहते हैं, तो मैं दो शब्दकोशों कि प्रत्येक शैली के लिए सभी छूट की बचत होगी बनाने के बारे में सोच रहा हूँ , इस तरह:
private int GetDiscount(Book b)
{
int maxDiscount = 0;
if (b is ReadingBook)
{
foreach (var genre in (b as ReadingBook).Genres)
{
// checking if the genre is in discount, and if its bigger than other discounts.
if (_readingBooksDiscounts.ContainsKey(genre) && _readingBooksDiscounts[genere]>maxDiscount)
{
maxDiscount = _readingBooksDiscounts[genere];
}
}
}
else if (b is TextBook)
{
foreach (var genre in (b as TextBook).Genres)
{
if (_textBooksDiscounts.ContainsKey(genre) && _textBooksDiscounts[genere]>maxDiscount)
{
maxDiscount = _textBooksDiscounts[genere];
}
}
}
return maxDiscount;
}
वें है:
Dictionary<ReadingBooksGenre, int> _readingBooksDiscounts;
Dictionary<TextBooksGenre, int> _textBooksDiscounts;
तो अब मैं उच्चतम छूट खोजने के लिए प्रत्येक पुस्तक की शैली जांच करने की आवश्यकता है, वहाँ यह करने के लिए किसी भी बेहतर तरीका है प्रकार की जांच किए बिना सही शब्दकोश का चयन करने का कोई तरीका है? या यहां तक कि शब्दकोशों के बिना इसे करने का एक तरीका, या एक का उपयोग कर? शायद किसी भी तरह से एनम के साथ पुस्तक प्रकार कनेक्ट करें?
सुधार के लिए कोई सुझाव सुनकर खुशी होगी।
(अधिक किताबें नाम, तारीख और लेखक के आधार पर छूट का एक बहुत है यही कारण है कि इस तरह से मेरे लिए सही नहीं लगता नहीं है। यहां तक कि कुछ और अधिक पुस्तक प्रकार)
धन्यवाद।
मैं ऐसे मॉडल का थोड़ा सा झुकाव हूं जहां टेक्स्टबुक _aren't_ गैर-कथा का उप-समूह है। हालांकि मुझे लगता है कि किसी को जे के के रोलिंग के _ क्विडिच थ्रू द एज्स के लिए भत्ते बनाना चाहिए _... –