Nein, es erschien als Profi.
button.addActionListener(
new ActionListener(){
@Override
public void actionPerformed(ActionEvent event){
/*Beschreiben Sie die Verarbeitung, wenn Sie hier auf die Schaltfläche klicken*/
}
}
);
darüber.
Es gibt eine Möglichkeit, eine ** anonyme Klasse ** zu schreiben, damit Sie vor Ort eine Klasse erstellen können.
Versuchen Sie beispielsweise, eine solche Schnittstelle zu entwerfen.
SampleInterface.java
interface SampleInterface{
public void sampleMethod();
}
Lassen Sie uns nun diese ** anonyme Klasse ** generieren.
SampleInterface sample = new SampleInterface(){
@Override
public void sampleMethod(){
System.out.println("Hello :-) ");
}
}
sample.sampleMethod();
// >>> Hello :-)
Sie können es so verwenden.
Was mache ich
ExampleClass.java
class ExampleClass implements SampleInterface{
@Override
public void sampleMethod(){
System.out.println("Hello :-) ");
}
}
SampleInterface sample = new ExampleClass();
sample.sampleMethod();
// >>> Hello :-)
Gleich wie das. Sie können sich die Mühe sparen, eine Klasse zu erstellen, die die Schnittstelle in einer separaten Datei implementiert.
Damit können Sie die Verarbeitung selbst in andere Klassen einteilen.
SampleClass.java
class SampleClass{
private SampleInterface sampleInterface;
public SampleClass(SampleInterface sampleInterface){
this.sampleInterface = sampleInterface;
}
public void callInterfaceMethod(){
sampleInterface.sampleMethod();
}
}
SampleClass sample = new SampleClass(
new SampleInterface(){
@Override
public void sampleMethod(){
System.out.println("Hellooooooo!!!! :-) ");
}
}
);
sample.callInterfaceMethod()
// >>> Hellooooooo!!!! :-)
So was.
Ich sehe es oft als ein Framework, das Java verwendet. Sie können die gewünschte Verarbeitung einfügen, ohne die Klasse zu ändern, die die Schaltflächen verarbeitet, sodass Sie die bequeme Verarbeitung des Frameworks unverändert lassen können. Selbst unter Android ist dieses Muster genau das, was Sie tun, wenn Sie eine Taste drücken.
Das ist alles für das ** Hörermuster **.