Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Μεθοδολογίες Προγραμματισμού ΙΙ
GRASP – Πρότυπα ΕΦΑΡΜΟΓΕΣ Παναγιώτης Σφέτσος, PhD Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
2
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Η μεγάλη εικόνα Στόχοι Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
3
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Μείωση του Χάσματος Απεικόνισης Low Representational Gap – LRG) Low Level Design (L.L.D.) Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
4
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Ανάθεση Αρμοδιοτήτων ή Εκχώρηση Ευθυνών Τα αντικείμενα έχουν αρμοδιότητες: να ‘δρουν-πράττουν’ να ‘γνωρίζουν’ Οι αρμοδιότητες των αντικειμένων εκχωρούνται στην φάση L.L.D. (όπως των υποσυστημάτων / στοιχείων στην H.L.D.) Συνεργασία(Collaboration): Εκπλήρωση αρμοδιότητας από την ίδια κλάση Εκπλήρωση αρμοδιότητας σε συνεργασία με άλλες κλάσεις Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
5
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Πρότυπο Δημιουργός (Creator Pattern) Εφαρμογή: Παιχνίδι Monopoly Παράδειγμα: Χρειαζόμαστε την δημιουργία ενός αντικειμένου τύπου τετράγωνο (square) Ερώτηση: Ποιος θα δημιουργεί το αντικείμενο τετράγωνο; Απάντηση: Βήμα 1ο: Ξεκινάμε από τις υπάρχουσες κλάσεις. Αν δεν έχουν οριστεί ακόμη κοιτάμε το Domain Model (σύμφωνα με την LRG) Βήμα 2ο: Εφαρμόζουμε το πρότυπο Δημιουργός (από τις υπάρχουσες κλάσεις), σύμφωνα με το διάγραμμα κλάσεων (LLD) Βήμα 3ο: Αποφασίζουμε την αρμοδιότητα (κλάση) και σχεδιάζουμε τα διάγραμμα ακολουθίας και κλάσεων Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
6
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Βήμα 1ο - Από το Domain Model Μπορεί να είναι κάποια εξωτερική κλάση (σκύλος, καπέλο..); Όχι αλλά γιατί; Βλέπουμε ότι το Board περιέχει τα τετράγωνα: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
7
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Βήμα 2ο και 3ο - Εφαρμογή του Creator Στο δυναμικό διάγραμμα (χωρίς το loop των 40 squares): Στο στατικό διάγραμμα: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
8
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Φορέας πληροφορίας (Information Expert) Εφαρμογή: Παιχνίδι Monopoly Παράδειγμα: Κάποιο αντικείμενο πρέπει να αναφέρεται σε κάποιο τετράγωνο (square) με το όνομά του. Ερώτηση: Ποιος θα είναι φορέας πληροφορίας για αυτό το τετράγωνο; Απάντηση: Το αντικείμενο που γνωρίζει (έχει την πληροφορία) για όλα τα τετράγωνα. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
9
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Εφαρμογή του Φορέα πληροφορίας Η Board περιέχει όλα τα τετράγωνα άρα κατέχει και την πληροφορία για την υλοποίηση της αρμοδιότητας: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
10
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Μειωμένη Σύζευξη (Low Coupling) Μείωση του κόστους Αλλαγών Γιατί όχι ένα αντικείμενο π.χ. τύπου dog; Δύο αντικ. έχουν σύζευξη με το square. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
11
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Ελεγκτής (Controller) – 1/3 Ποιο αντικείμενο θα χειριστεί συμβάντα (events) – διεπιφάνειας (UI); Από το SSD για το Monopoly : Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
12
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Ελεγκτής (Controller) – 2/3 Ποιο αντικείμενο στο επίπεδο προβλήματος(domain) θα χειριστεί τα συμβάντα / κλήσεις μεθόδων; Σχηματική απεικόνιση: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
13
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Ελεγκτής (Controller) – 3/3 Ένα αντικείμενο που απεικονίζει το σύστημα / root object (π.χ. MonopolyGame) ή μια συσκευή (π.χ. phone, cashier, κλπ.). Διαλέγουμε την 1η επιλογή γιατί έχουμε λίγες λειτουργίες. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
14
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Υψηλή Συνοχή (High Cohesion) - 1/2 Σχεδιαστικά είμαστε εδώ: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
15
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Υψηλή Συνοχή (High Cohesion) – 2/2 Αν επιλέξουμε το αριστερό διάγραμμα θα έχουμε χαμηλή συνοχή, Καλύτερη με το δεξιό διάγραμμα. Γιατί; Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
16
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Ποιος έχει την ευθύνη για την επανάληψη του παιχνιδιού; Στόχοι Ο αλγόριθμος: for N rounds for each Player p p takes a turn Από τον φορέα πληροφορίας το αντικείμενο MonopolyGame. Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
17
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Ποιος ‘παίζει’; Από τον φορέα πληροφορίας το αντικείμενο Player: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
18
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Τα τελικά δυναμικά διαγράμματα Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
19
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Το τελικό στατικό διάγραμμα Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
20
Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ
Στόχοι Η αρχικοποίηση (Περίπτωση Χρήσης) Το MonopolyGame είναι το root-object, δημιουργεί το Board και Players: Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ Παναγιώτης Σφέτσος Μεθοδολογίες Προγραμματισμού ΙΙ
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.