Dimitris Papadimitriou:Ευχαριστώ όλους για τη συμμετοχή!
Το μόνο που ίσως πρέπει να προσθέσω ότι το signature της Dummy δεν μπορεί να έχει generic καθώς δεν ξέρω εκ των προτέρων τον τύπο που θα περάσει κανείς. Μπορεί να είναι Dummy(object) ή Dummy(Cage).
Ε, αυτό είναι που δεν καταλαβαίνω. Αφού ΔΕΝ χρειάζεται να περάσεις τον τύπο με τα generics! Έτσι και γράψεις Dummy<T> where T:Animal είσαι εντάξει. Ή μήπως δεν θέλεις να ορίσεις ούτε καν την Animal? Οι διάφοροι τύποι (Animal, Tiger κλπ) δεν έχουν καμμία σχέση μεταξύ τους?
Όσο για λύση χωρίς generics, υπάρχουν αρκετές, φτάνει να ξέρουμε ποιό είναι το πρόβλημα. Καταρχήν, μπορείς να έχεις μία overloaded Dummy για κάθε τύπο. Μπορείς επίσης να χρησιμοποιήσεις το Visitor pattern και τις παραλλαγές του, το οποίο σου επιτρέπει να καλέσεις διαφορετικό κώδικα για κάθε τύπο παραμέτρου χωρίς να τον προσδιορίζεις στον κώδικα. Αλλά το αν ταιριάζει ή όχι, μπορεί κανείς να το καταλάβει μόνο αν περιγράψεις το πρόβλημα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos