Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |
| oop:bridge_pattern [2026/05/25 12:45] – [Παράδειγμα] gthanos | oop:bridge_pattern [2026/05/25 12:46] (current) – [Παράδειγμα] gthanos |
|---|
| </code> | </code> |
| |
| | <WRAP tip 90% center round> |
| Συνοψίζοντας, τα οφέλη αυτής της αρχιτεκτονικής είναι τα εξής: | Συνοψίζοντας, τα οφέλη αυτής της αρχιτεκτονικής είναι τα εξής: |
| |
| - **Αποφυγή πολύπλοκων ιεραρχιών κλάσεων:** Αν είχαμε χρησιμοποιήσει παραδοσιακή κληρονομικότητα θα δημιουργούσαμε πολλές συνδυαστικές κλάσεις (TvBasicRemote, TvAdvancedRemote, RadioBasicRemote, RadioAdvancedRemote). Με το Bridge, κρατήσαμε τον κώδικα διαχωρισμένο σε δύο ανεξάρτητους άξονες: Τηλεχειριστήρια και Συσκευές. | - **Αποφυγή πολύπλοκων ιεραρχιών κλάσεων:** Αν είχαμε χρησιμοποιήσει παραδοσιακή κληρονομικότητα θα δημιουργούσαμε πολλές συνδυαστικές κλάσεις (TvBasicRemote, TvAdvancedRemote, RadioBasicRemote, RadioAdvancedRemote). Με το Bridge, κρατήσαμε τον κώδικα διαχωρισμένο σε δύο ανεξάρτητους άξονες: Τηλεχειριστήρια και Συσκευές. |
| - **Ανεξάρτητη Εξέλιξη (Orthogonal Extension):** | - **Ανεξάρτητη Εξέλιξη (Orthogonal Extension):** |
| * Μια νέα συσκευή, π.χ. SmartProjector, απλά υλοποιείς το Device. Όλα τα τηλεχειριστήρια θα δουλέψουν μαζί της αμέσως. | * Μια νέα συσκευή, π.χ. SmartProjector, απλά υλοποιείς το Device. Όλα τα τηλεχειριστήρια θα δουλέψουν μαζί της αμέσως. |
| * Ένα νέο τηλεχειριστήριο, π.χ. VoiceRemoteControl, απλά κληρονομείς το RemoteControl. Θα μπορεί να ελέγξει όλες τις υπάρχουσες συσκευές αμέσως. | * Ένα νέο τηλεχειριστήριο, π.χ. VoiceRemoteControl, απλά κληρονομείς το RemoteControl. Θα μπορεί να ελέγξει όλες τις υπάρχουσες συσκευές αμέσως. |
| | </WRAP> |