mitsosbmx Δημοσ. 21 Φεβρουαρίου 2017 Δημοσ. 21 Φεβρουαρίου 2017 Έστω ότι έχουμε ενα πρόβλημα στο οποίο έχουμε Χ αμάξια(κλάση) που αποτελείται απο Υ κομμάτια(κλάση) που κάθε κομμάτι έχει Ζ κατασκευαστές(κλάση) και ομοίως και άλλα επίπεδα. Τα data των κλάσεων αλλα και τα X,Y,Z,.. γίνονται γνωστά runttime.Ποιός είναι ο καλύτερος τρόπος να υλοποιηθεί αυτή η μοντελοποίηση(και αν αυτή είναι λάθος πως μπορεί να αλλάξει). Dynamic arrays ως class members που σκέφτηκα κατευθείαν,απαιτούν πολλαπλά/πολυεπίπεδα arrays να δωθούν στον contructor της αμάξι για να δημιουργηθούν και οι υπόλοιπες.Καμία ιδέα?
Dinos_12345 Δημοσ. 21 Φεβρουαρίου 2017 Δημοσ. 21 Φεβρουαρίου 2017 Ένα approach είναι να έχεις μία list με τους κατασκευαστές του κάθε κομματιού μέσα στην κλάση του. Αντίστοιχα μία λίστα με τα κομμάτια μέσα στην κλάση του αυτοκινήτου. Ακόμα καλύτερα θα ήταν αν είχες μία λίστα με pointers στους κατασκευαστές μέσα στα κομμάτια καθώς και μία λίστα με pointers στα κομμάτια για τα αυτοκίνητα. Φαντάζομαι πως ο κατασκευαστής είναι και αυτός αντικείμενο και έχει attributes. άρα ένα μίνι/πρόχειρο μοντέλο είναι από κάτω. class Car{ //... list<Part*> parts; //... } class Part{ //... list<Manufacturer*> manufacturers; //... } class Manufacturer{ //... } Τώρα κάπως μέσα στη διεπαφή με το χρήστη, θα πρέπει να του ζητάς να αρχικοποιήσει τους κατασκευαστές και μετά να τους βάζεις εσύ στη λίστα manufacturers που θα είναι στο main πρόγραμμα σου. Μετά για κάθε κομμάτι θα επιλέγει ο χρήστης τους κατασκευαστές από τη διεπαφή, και αυτούς που θα επιλέξει θα τους βάζεις στη λίστα του νέου αντικειμένου μέσω του constructor του μαζί με ότι άλλο attribute έχει. Ομοίως για το αυτοκίνητο. Αν κάνω λάθος κάπου ας με διορθώσει κάποιος πιο έμπειρος, αυτό είναι το πιο απλό και efficient που μπορώ να σκεφτώ.
Moderators Kercyn Δημοσ. 21 Φεβρουαρίου 2017 Moderators Δημοσ. 21 Φεβρουαρίου 2017 Αυτό που είπε ο dinos_12345 αλλά με vector και καλύτερα όχι pointers.
mitsosbmx Δημοσ. 21 Φεβρουαρίου 2017 Μέλος Δημοσ. 21 Φεβρουαρίου 2017 Σας ευχαριστώ πολύ παιδιά.Αυτό ακριβώς ήθελα!! 1
defacer Δημοσ. 22 Φεβρουαρίου 2017 Δημοσ. 22 Φεβρουαρίου 2017 Dynamic arrays ως class members που σκέφτηκα κατευθείαν,απαιτούν πολλαπλά/πολυεπίπεδα arrays να δωθούν στον contructor της αμάξι για να δημιουργηθούν και οι υπόλοιπες.Καμία ιδέα? Γιατί μπερδεύεις το πού θα είναι αποθηκευμένες αυτές οι πληροφορίες και σε ποιά μορφή με το τι γίνεται στον constructor της αμάξι; Αυτό σε ξεκινάει σε τελείως λάθος κατεύθυνση. Επιπλέον, γιατί ο constructor της "αμάξι" πρέπει, όπως υπονοείται από τα λεγόμενά σου, να κάνει create instances από όλα τα υπόλοιπα; Αυτό κάνει την "αμάξι" να παίζει το ρόλο "κατασκευαστής αμαξιού και instances παρελκομένων" εκτός από το ρόλο "αντιπροσωπεύω ένα αμάξι" που τυπικά υποθέτω επίσης παίζει. Γενικά μιλώντας, τέτοιου είδους "design by accident", ίσον μη-design από την ΟΟ οπτική, καταλήγουν σε πολύ άσχημα πράγματα να γίνονται στον κώδικα. Εδώ, έστω υποθετικά μιλώντας, μπορεί να καταλήγουν στο να σε κάνουν να ψάχνεις ιστορίες για αγρίους και λύσεις στα συμπτώματα που βασικά προκαλούνται από πολύ βαθύτερα προβλήματα. Δε μπορώ να σου προτείνω "τη σωστή λύση", ειδικά χωρίς περισσότερες πληροφορίες, αλλά αν θες δοκίμασε να μας απαντήσεις στο ερώτημα "δηλαδή τι κακό θα συμβεί εκεί στον constructor" για να δούμε πού θα οδηγήσει η κουβέντα.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα