User Tools

Site Tools


oop:adapter_pattern

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
oop:adapter_pattern [2026/05/24 21:06] – [java.util.Arrays#asList()] gthanosoop:adapter_pattern [2026/05/24 21:08] (current) – [WindowAdapter, MouseAdapter (στο java.awt.event)] gthanos
Line 102: Line 102:
  
   * **Το πρόβλημα:** Το interface ''MouseListener'' έχει 5 μεθόδους (mouseClicked, mousePressed, mouseReleased, mouseEntered, mouseExited). Αν ο προγραμματιστής θέλει να γράψει κώδικα μόνο για το click, η Java θα τον ανάγκαζε να κάνει override και τις 5 μεθόδους, αφήνοντας τις 4 κενές, γεμίζοντας τον κώδικα με "θόρυβο".   * **Το πρόβλημα:** Το interface ''MouseListener'' έχει 5 μεθόδους (mouseClicked, mousePressed, mouseReleased, mouseEntered, mouseExited). Αν ο προγραμματιστής θέλει να γράψει κώδικα μόνο για το click, η Java θα τον ανάγκαζε να κάνει override και τις 5 μεθόδους, αφήνοντας τις 4 κενές, γεμίζοντας τον κώδικα με "θόρυβο".
-  * **Η λύση (Adapter):** Η Java παρέχει την κλάση ''MouseAdapter''. Αυτή η κλάση υλοποιεί το //interface// ''MouseListener'' και δίνει κενές (empty) υλοποιήσεις για όλες τις μεθόδους. Κληρονομείς τον //MouseAdapter// και κάνεις //override// μόνο τη μέθοδο που σε ενδιαφέρει.+  * **Η λύση (Adapter):** Η Java παρέχει την κλάση ''MouseAdapter''. Αυτή η κλάση υλοποιεί το //interface// ''MouseListener'' και δίνει κενές (empty) υλοποιήσεις για όλες τις μεθόδους. Κληρονομείς τον //MouseAdapter// και κάνεις //override// μόνο τη μέθοδο που σε ενδιαφέρει, αγνοώντας τις υπόλοιπες. 
 + 
 +<code java> 
 +// Αντί για "implements MouseListener" (που θέλει 5 μεθόδους) 
 +// χρησιμοποιούμε τον MouseAdapter και γράφουμε μόνο μία 
 +button.addMouseListener(new MouseAdapter() { 
 +    @Override 
 +    public void mouseClicked(MouseEvent e) { 
 +        System.out.println("Left mouse button clicked!"); 
 +    } 
 +}); 
 +</code>
  
  
oop/adapter_pattern.1779656804.txt.gz · Last modified: 2026/05/24 21:06 by gthanos