Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Μεθοδολογίες Προγραμματισμού ΙΙ Διαγράμματα Κλάσεων Παναγιώτης Σφέτσος, PhD

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Μεθοδολογίες Προγραμματισμού ΙΙ Διαγράμματα Κλάσεων Παναγιώτης Σφέτσος, PhD"— Μεταγράφημα παρουσίασης:

1 Μεθοδολογίες Προγραμματισμού ΙΙ Διαγράμματα Κλάσεων Παναγιώτης Σφέτσος, PhD

2 Παραγγελία προϊόντων μέσω καταλόγου (Order) – 1 Για οποιοδήποτε πλήθος: Order - Παραγγελία (Order) από Customer τον Customer Employee - Υλοποιείται από τον Employee - Πληρώνεται μέσω της PaymentMethod Address - Υλοποιείται μέσω μιας Address Customer που ανήκει σε ένα Customer. OrderItems - Αποτελείται από OrderItems

3 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ3 Παραγγελία προϊόντων μέσω καταλόγου (Order) – 2 PaymentMethod - H PaymentMethod έχει τρεις διαφορετικούς τρόπους πληρωμής που μπορεί να χρησιμοποιεί. (Γενίκευση – Κληρονομικότητα)

4 Παραγγελία προϊόντων μέσω καταλόγου (Order) – 3

5 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ5 Στόχοι Διαγράμματα Αλληλεπίδρασης και Κλάσεις Τα μηνύματα καλούν μεθόδους στις κλάσεις.

6 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ6 Στόχοι Προσανατολισμός – Πλοήγηση - 1

7 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ7 Στόχοι Προσανατολισμός – Πλοήγηση - 2 Η κλάση Register έχει το χαρακτηριστικό currentSale που δείχνει αντικείμενο της Sale.

8 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ8 Στόχοι Προσανατολισμός – Πλοήγηση - 3 Εξαρτήσεις: Εξαρτήσεις: H Register ξέρει ένα προϊόν από την Catalog, ενώ η Sale λαμβάνει ένα ProductSpecification στο μήνυμα makeLineItem.

9 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ9 Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 1 Από το διάγραμμα enterItem: 1)Μήνυμα enterItem, καλεί μέθοδο στην κλάση Register 2)Μήνυμα getProductDescription στέλνεται στην ProductCatalog για να πάρουμε ProductDescription 3)Μήνυμα makeLineItem, καλεί μέθοδο στην κλάση Sale

10 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ10 Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 2 Καλούμε την ProductCatalog για ProductDescription, και την makeLineItem για την τρέχουσα πώληση

11 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ11 Στόχοι Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 3 Κλήση στην ProductDescription της ProductCatalog για να πάρουμε ProductDescription Κλήση στην makeLineItem για της Sale

12 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ12 Στόχοι Προσέξτε τον δομητή SalesLineItem(). Προέρχεται από το μήνυμα create(desc, qty) στην SalesLineItem από το διάγραμμα Αλληλεπίδρασης enterItem (βλέπε προηγ. διαφάνεια). Δημιουργία μεθόδων από τα Διαγράμματα Αλληλεπίδρασης - 4

13 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ13 Στόχοι Σύνθεση vs. Συσσωμάτωση Composition - Aggregation Σύνθεση: 1)Το τμήμα (π.χ. Square) πρέπει να ανήκει σε ένα όλο (Board) (δεν υπάρχουν ελεύθερα Squares) 2)Το τμήμα (π.χ. Square) ανήκει μόνο σε ένα όλο (τρέχον Board) 3)Το όλο είναι υπεύθυνο για την δημιουργία και διαγραφή των τμημάτων

14 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ14 Στόχοι Σύνθεση vs. Συσσωμάτωση Παράδειγμα Συσσωμάτωση: Η Account χρησιμοποιεί την AddressBook, μπορεί να χρησιμοποιηθεί και από άλλες κλάσεις. Σύνθεση: Η AddressBook αποτελείται από τις υποκλάσεις ή εμπεριέχει τις υποκλάσεις : Contact και ContactGroup.

15 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ15 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 1/4 • Ξεχωρίστε τις κλάσεις του Συστή- ματος και επεξηγήστε τις επιλογές… • Η κλάση ΑΤΜ χειρίζεται το Startup και Shutdown για αυτό δεν χρειάζονται ξεχωριστά αντικείμενα

16 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ16 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 2/4

17 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ17 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 3/4

18 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ18 Στόχοι Κλάσεις στο παράδειγμα ΑΤΜ – 4/4

19 Παναγιώτης Σφέτσος, Μεθοδολογίες Προγραμματισμού ΙΙ19 Στόχοι class School { Name name; String address; Number phone; void addStudent() {} void removeStudent() {} void getStudent() {} void getAllStudents() {} void addDepartment() {} void removeDepartment() {} void getDepartment() {} void getAllDepartments() {} } class Department { Name name; void addInstructor() {} void removeInstructor() {} void getInstructor() {} void getAllInstructors() {} } class Student { Name name; Number studentID;} class Course { Name name; Number courseID; } class Instructor { Name name;} has 1..* Member * Student composed 1..* has 1..* Department has 1..* AssignedTo 1..* Instructor assoc 1..* - 1..* Course assoc 0..* - "0..1 chairperson" Instructor assoc * Attends * Course assoc 1..* Teaches * Course


Κατέβασμα ppt "Μεθοδολογίες Προγραμματισμού ΙΙ Διαγράμματα Κλάσεων Παναγιώτης Σφέτσος, PhD"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google