Αντικειμενοστραφής Προγραμματισμός (OO Programming)

Από Αποεμπορευματοποίηση
Μετάβαση σε: πλοήγηση, αναζήτηση

Κρέντιτς

  • Φόρος τιμής στα χακέρια που ανέπτυξαν τις γλώσσες Αντικεiμενοστραφούς προγραμματισμού (Object Oriented Programming), πχ αυτόν ή αυτόν (δεν τον μπερδεύουμε μ' αυτόν) και τους συνεργάτες τους (ας μας σχωρνάνε όσοι παραλείπονται αλλά θα χρειαζόμασταν πολλές σελίδες).

Ινσπιρέησον

  • Οσοι ασχολήθηκαν ερασιτεχνικά με τον προγραμματισμό (και ανάλογα με την ηλικία) ίσως να θυμούνται τις non structural languages π.χ. Την BASIC του Spectrum ή την GwBASIC, με τον κώδικα -μακαρόνι, όπου κατ ουσίαν μόνος conditional branch ήταν “IF ξερω-γω-τι THEN GOTO 75”. Οταν περάσαμε στον δομημένο προγραμματισμό, που μπορούσες να χωρίσεις τον κώδικα σε blocks μεγάλη ευτυχία: μπορούσες να οργανώσεις τη σκέψη σου και να διαβάζεται και ο κώδικας από κάποιον άλλον, ή κι από σένα τον ίδιο δυο μέρες μετά χωρίς να μπαίνεις στο λαβύρινθο της μακαρονάδας. Προσωπικά η αγάπη μου έμεινε στις procedural γλώσσες και δεν επεκτάθηκε στις αντικειμενοστραφείς. Αν π.χ θέλεις ένα ποτήρι να πέφτει, στη C φτιάχνεις μια “struct{ ..διάφορα...} glass;” και μια συνάρτηση “rixnw( *glass);” . Στη C++ μπορείς να φτιάξεις ένα αντικείμενο glass που να εμπεριέχει τη method peftw(), οπότε όταν είναι να πέσει γράφεις "glass.peftw();". Κάποια πραματάκια που δε μου αρέσουν:
 1. Δεν έχω συναντήσει ποτήρια με αυτοκτονικές τάσεις.
 2. Αλγοριθμικά δεν βοηθά καθόλου στον προσανατολισμό (Object Oriented) ούτε στην περιστροφή 
    (Αντικειμενοστραφής γαρ) του ποτηριού αλλά και κάθε άλλου αντικειμένου.

Ετσι προσπάθησα να βρω έναν τρόπο να διευκολύνω το ζήτημα του προγραμματισμού της περιστροφής και του προσανατολισμού (μόνο στο επίπεδο, όχι στον τρισδιάστατο χώρο). Γίνεται τελικά πολύ απλά, χωρίς ούτε μια γραμμή κώδικα!!!

Παρτς

  • Ενα κομμάτι κοντρα πλακέ, πχ ένα στρογγυλό διαμέτρου 30 ~ cm.
  • Ενας χρονοδιακόπτης πρίζας.
  • Ενα τροφοδοτικό (του laptop μας π.χ. είναι ταμάμ).
  • Ενα ηλεκτρικό μοτόρι (σαν αυτά που έχουν τα παιχνίδια π.χ.)
  • Ενα διπλό switch (προαιρετικά)
  • Ενα ποτενσιόμετρο (προαιρετικά)

Ιμπλεμεντέισιον

  • Ανοίγουμε μια τρυπούλα στο κόντρα πλακέ και το στερεώνουμε (π.χ με κόλλα, με σιλικόνη, μ' ένα σφιγτηράκι, με γουατέβερ τεσπα) κάθετα στον άξονα του μοτοριού ώστε να έχουμε κάτι σαν τραπεζάκι με το μοτέρ για πόδι και το κοντραπλακέ για τάβλα.
  • Στηρίζουμε κάπως το “τραπεζάκι” μας όρθιο (π.χ στριμώχνοντας το ανάμεσα σε δυο τούβλα).
  • Βάζουμε το χρονοδιακόπτη στη μπρίζα, το τροφοδοτικό στο χ/κόπτη, τραβαμε δυο καλωδιάκια στο μοτέρ. Προαιρετικά περνούμε το switch ώστε να αλλάζουμε πολικότητα. Επίσης προαιρετικά βάζουμε σ' ένα απ τα 2 καλώδια το ποτενσιόμετρο.
  • Βάζουμε ένα φλυτζανάκι πάνω στο “τραπέζι” μας και είμαστε έτοιμοι! :
  • Με το χ/κόπτη ρυθμίζουμε το πότε και για πόσο χρόνο θα γυρίζει το μοτόρι. Με το σουίτς αλλάζουμε τη φορά της περιστροφής. Με το ποτενσιόμετρο αλλάζουμε την ταχύτητα περιστροφής.
  • Et voila!!! Το αντικείμενό μας (φλυτζάνι) περιστρέφεται (ελαφρώς προγραμματισμένα)!!!

Ντισκάσιον

Οπως καταλαβαίνουμε πρόκειται για μια εντελώς ελεμένταρυ παρουσίαση των βασικών αρχών του Αντικειμενοστραφούς Προγραμματισμού. Για μεγαλύτερα αντικείμενα χρειαζόμαστε ένα δυνατότερο μοτέρ, σταθερότερη κατασκευή τραπεζιού. Για περισσότερο προγραμματισμό (το πότε θα αλλάζει η φορά, η ταχύτητα κλπ) ένας microcontroller είναι απαραίτητος, ενδεχομένως ένας H-driver, ένα MOSFET τρανζιστοράκι, κ.α. Ετσι θα περιορίζαμε το ιντεράκτσιον και θα απολαμβάναμε την περιστροφή πλήρως προγραμματισμένη (Μόνο που χρειάζεται να γράψουμε και λιγάκι κώδικα).

Trivia

Να πούμε επίσης ότι η ακριβείς ορολογία για το.. αντικείμενο μας είναι περιπετειώδης. Στις βάρβαρες περιοχές υπάρχει μάχη μεταξύ αυτών που λένε Oriened (Ο-ΡΙ-ΕΝ-ΤΙΝΤ) και αυτών που λένε Orienteted (Ο-ΡΙ-ΕΝ-ΤΙ-ΤΙΝΤ). Στην Ελλάδα, η απουσία ύπαρξης άρθρου του Νίκου Δήμου στο RAM για το αν λέγετε αντικειμενοστρΕφης ή αντικειμενοστρΑφης κλόνισε και δίχασε ταυτόχρονα. Το αντικειμενοστρΑφης απέκτησε το FMA (First-mover advantage) and the rest as they say is history.

Τσάλεντζες για μερακλήδες

  • Οταν χτυπάει το ξυπνητήρι η καφετιέρα έχει μόλις σερβίρει τον καφέ που μας περιμένει κυριολεκτικά και αντικειμενικά στρεφόμενος μεγαλοπρεπώς.
  • Ο.π. αλλά με ένα step motor ο καφές μας περιμένει χορεύοντας 9/8 το “Και του τοίχου το ρολόϊ/ αρχινά το μοιρολόι” του Τάκη Λαβίδα
  • Αντικατάσταση του αντικειμένου με δισκάκι 7′′ βινυλίου και καλιμπράρισμα του ποτενσιόμετρου για ταχύτητα περιστροφής 45 rpm. (Κάνει ανλόκ hidden character)