Nachdem Sie die Bildverarbeitungssoftware verwendet haben, um Bilder zu verarbeiten, müssen Sie ein Format zum Speichern auswählen. Die von verschiedenen Formaten auf der zugrunde liegenden Ebene implementierten Algorithmen sind jedoch nicht gleich, was nur zum Strategiemuster passt. Schreiben Sie ein Programm, das zeigt, wie man mit einer Kombination von Richtlinienmustern und einfachen Fabrikmustern entwickelt wird.
Die Idee ist wie folgt:
1. Definieren Sie eine Schnittstelle, um eine Schnittstelle zu definieren und die Save () -Methode in der Schnittstelle zu definieren.
2. Definieren Sie verschiedene Klassen entsprechend dem Bildformat und verwenden Sie das Schlüsselwort -Gerät, um die Schnittstelle in diesen Klassen zu implementieren.
3. Erstellen Sie eine Klasse, die die Auswahl implementiert, die Methode definiert, die die Auswahl in dieser Klasse implementiert, und der Rückgabewert der Methode ist die entsprechende Bildsparenklasse.
4. Implementieren Sie die Schnittstelle in der Hauptmethode.
Der Code ist wie folgt:
Die Codekopie lautet wie folgt:
öffentliche Schnittstelle Imagebilder {
void Save (); // Save () -Methode definieren
}
öffentliche Klasse GifSaver implementiert Imagesaver {
@Override
public void save () {// save () methode implementieren
System.out.println ("Speichern Sie das Bild im GIF -Format");
}
}
öffentliche Klasse JPEGSaver implementiert Imagebilder {
@Override
public void Save () {
System.out.println ("Speichern Sie das Bild im JPG -Format");
}
}
public class pngSaver implementiert Imagesaver {
@Override
public void Save () {
System.out.println ("das Bild im PNG -Format speichern");
}
}
öffentliche Klasse typechooser {
public static Imagesaver getaver (String -Typ) {
if (type.equalSignoreCase ("GIF")) {// Verwenden Sie die Anweisung IF ENE, um den Typ des Bildes zu bestimmen
Rückgabe neuer GifSaver ();
} else if (type.equalSignoreCase ("jpeg")) {
Neue JpegSaver () zurückgeben;
} else if (type.equalSignoreCase ("png")) {
Rückgabe neuer pngSaver ();
} anders {
null zurückkehren;
}
}
}
Benutzer der öffentlichen Klasse {
public static void main (String [] args) {
System.out.print ("Der Benutzer hat das GIF -Format ausgewählt:");
Imagesaver Saver = typechooser.getSaver ("GIF"); // Erhalten Sie das Objekt, das das Bild als GIF -Typ speichert
Saver.save ();
System.out.print ("Der Benutzer ausgewählte JPEG -Format:"); // Erhalten Sie das gespeicherte Bild als JPEG -Typ -Objekt
Saver = typechooser.getSaver ("jpeg");
Saver.save ();
System.out.print ("Der Benutzer ausgewählte PNG -Format:"); // Erhalten Sie das Objekt, das das Bild als PNG -Typ speichert
Saver = typechooser.getSaver ("PNG");
Saver.save ();
}
}
Der Effekt wird im Bild gezeigt: