alexc Δημοσ. 7 Ιανουαρίου 2014 Δημοσ. 7 Ιανουαρίου 2014 Καλησπέρα και χρόνια πολλά σε όλους. Η ερώτηση μου είναι η εξής: Έχουμε δυο κλάσεις Β και Γ οι οποίες κληρονομούν από την Α. Θέλω σε μια άλλη κλάση να έχω μια συλλογή από τις κλάσεις Β και Γ. Είναι καλύτερη τακτική να δημιοργήσω ξεχωριστή συλλογή για τα αντικείμενα της κλάσης Β και ξεχωριστή για την Γ ή να φτιάξω μια συλλογή από αντικείμενα της Α που θα περιλαμβάνει αντικείμενα της Β και Γ? Στην δεύτερη περίπτωση πως μπορώ εγώ να ξεχωρίσω ποιο αντικείμενο είναι της κλάσης Β και ποιο της Γ?
defacer Δημοσ. 7 Ιανουαρίου 2014 Δημοσ. 7 Ιανουαρίου 2014 Εξαρτάται από πολλά πράγματα. Και τα 2 μπορούν να δουλέψουν, οπότε το τι είναι καλύτερη τακτική εξαρτάται από το σκοπό σου. Δώσε συγκεκριμένο παράδειγμα του τι θες να κάνεις (να περιλαμβάνει όλες τις περιπτώσεις που θα ακουμπήσεις την/τις συλλογές που λες, ή τουλάχιστον να περιγράφει σχετικά).
ZAKKWYLDE Δημοσ. 7 Ιανουαρίου 2014 Δημοσ. 7 Ιανουαρίου 2014 Τα πάντα εξαρτώνται απο το τί ακριβώς θέλεις να κάνεις, αλλά σε γενικές γραμμές η καλύτερη τακτική είναι να κάνεις μια συλλογή της υπερκλάσης. Δηλαδή του Α. Αυτό έχει διάφορα πλεονεκτήματα και μειονεκτήματα, τα οποία ξεπερνιούνται με την χρήση Design Patterns. Στο τελευταίο σκέλος της ερώτησής σου...μια quick and dirty απάντηση είναι ότι μπορείς να ξεχωρίσεις τη κλάση με το instanceof. Δηλαδή: List<A> entities = fillList(); for (A a: entities) { if (a instanceof B ) { //.... } else if (a instanceof C) { //... } } Θα διαπιστώσεις ότι και απο αυτόν το τρόπο θα προκύψουν προβλήματα/μειονεκτήματα. Εν ολίγοις αν δεν πεις ακριβώς τι θέλεις να κάνεις είναι δύσκολο να δώσουμε την σωστότερη απάντηση.
alexc Δημοσ. 7 Ιανουαρίου 2014 Μέλος Δημοσ. 7 Ιανουαρίου 2014 Η κύρια λειτουργία που θέλω να κάνω με αυτήν την συλλογή είναι να επιλέγω ΤΥΧΑΙΑ κάποιο αντικείμενο ( Η κλάση όμως παίζει ρόλο δηλαδή εγώ διαλέγω αν είναι Β ή Γ). Οπότε υποθέτω οτι η πρώτη προσέγγιση είναι καλύτερη έτσι? Θα πηγαίνω κατευθείαν στην συλλογή αντικειμένων πο υμε ενδιαφέρουν και θα κάνω random pick εκεί.
tr3quart1sta Δημοσ. 7 Ιανουαρίου 2014 Δημοσ. 7 Ιανουαρίου 2014 Στην δεύτερη περίπτωση πως μπορώ εγώ να ξεχωρίσω ποιο αντικείμενο είναι της κλάσης Β και ποιο της Γ? γιατι εχει σημασια αυτο?
ZAKKWYLDE Δημοσ. 8 Ιανουαρίου 2014 Δημοσ. 8 Ιανουαρίου 2014 Η κύρια λειτουργία που θέλω να κάνω με αυτήν την συλλογή είναι να επιλέγω ΤΥΧΑΙΑ κάποιο αντικείμενο ( Η κλάση όμως παίζει ρόλο δηλαδή εγώ διαλέγω αν είναι Β ή Γ). Οπότε υποθέτω οτι η πρώτη προσέγγιση είναι καλύτερη έτσι? Θα πηγαίνω κατευθείαν στην συλλογή αντικειμένων πο υμε ενδιαφέρουν και θα κάνω random pick εκεί. Το θέμα είναι τι θέλεις τελικά να κάνεις με τα αντικείμενα
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα