User Tools

Site Tools


java:interface

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
java:interface [2017/02/03 09:51]
gthanos created
java:interface [2020/02/21 19:12]
gthanos
Line 1: Line 1:
-====== Διεπαφές (Interfaces) ======+====== Διεπαφή (Interface) ======
  
 ===== Εισαγωγικά ===== ===== Εισαγωγικά =====
Line 18: Line 18:
 Ας υποθέσουμε τώρα ότι ένας κατασκευαστής ηλεκτρικών συσκευών (κλιμαστιστικά, ψυγεία κ.α.) χρησιμοποιεί Java για τον αυτοματισμό τους και θέλει να χρησιμοποιεί μία κλάση τύπου //Timer// για τις συσκευές που κατασκευάζει προκειμένου να ενσωματώσει τη λειτουργία του χρονόμετρου. Για να το κάνει αυτό, μπορεί να χρησιμοποιήσει __οποιαδήποτε κλάση είναι σύμφωνη με τον παραπάνω //interface//__. Ας υποθέσουμε επίσης ότι υπάρχουν τουλάχιστον δύο διαφορετικές κλάσεις που υλοποιούν το συγκεκριμένο interface //Timer// Ας υποθέσουμε τώρα ότι ένας κατασκευαστής ηλεκτρικών συσκευών (κλιμαστιστικά, ψυγεία κ.α.) χρησιμοποιεί Java για τον αυτοματισμό τους και θέλει να χρησιμοποιεί μία κλάση τύπου //Timer// για τις συσκευές που κατασκευάζει προκειμένου να ενσωματώσει τη λειτουργία του χρονόμετρου. Για να το κάνει αυτό, μπορεί να χρησιμοποιήσει __οποιαδήποτε κλάση είναι σύμφωνη με τον παραπάνω //interface//__. Ας υποθέσουμε επίσης ότι υπάρχουν τουλάχιστον δύο διαφορετικές κλάσεις που υλοποιούν το συγκεκριμένο interface //Timer//
  
-Γνωρίζοντας ότι όλες οι εναλλακτικές κλάσεις που θα χρησιμοποιήσει θα υλοποιούν υποχρεωτικά το συγκεκριμένο //interface//, αρκεί να σχεδιάσει και να υλοποιήσει το λογισμικό του του ώστε να χρησιμοποιεί το //interface// αυτό. Σε αυτή την περίπτωση, σχεδιάζει και γράφει το λογισμικό με γνώμονα τον interface και όχι τη συγκεκριμένη κλάση που θα επιλέξει να χρησιμοποιήσει τελικά.+Γνωρίζοντας ότι όλες οι εναλλακτικές κλάσεις που θα χρησιμοποιήσει θα υλοποιούν υποχρεωτικά το συγκεκριμένο //interface//, αρκεί να σχεδιάσει και να υλοποιήσει το λογισμικό του ώστε να χρησιμοποιεί το //interface// αυτό. Σε αυτή την περίπτωση, σχεδιάζει και γράφει το λογισμικό με γνώμονα το interface και όχι την κλάση που θα επιλέξει να χρησιμοποιήσει τελικά.
  
 Υιοθετώντας την έννοια του //interface// και γράφοντας κώδικα που χρησιμοποιεί //interfaces//, γράφουμε κώδικα που είναι ανεξάρτητος από την οποιαδήποτε υλοποίηση των //interfaces// που χρησιμοποιεί. Γενικότερα, ισχύει η αρχή ότι οι υλοποιήσεις ενός interface μπορεί να αλλάξουν, τα interfaces όμως συνιστάται να παραμένουν σταθερά. Υιοθετώντας την έννοια του //interface// και γράφοντας κώδικα που χρησιμοποιεί //interfaces//, γράφουμε κώδικα που είναι ανεξάρτητος από την οποιαδήποτε υλοποίηση των //interfaces// που χρησιμοποιεί. Γενικότερα, ισχύει η αρχή ότι οι υλοποιήσεις ενός interface μπορεί να αλλάξουν, τα interfaces όμως συνιστάται να παραμένουν σταθερά.
java/interface.txt · Last modified: 2021/03/21 20:06 (external edit)