La idea es la siguiente:
Use la interfaz para definir una interfaz y defina el método Save () en esa interfaz;
Defina diferentes clases de acuerdo con el formato de imagen y use los implementos de palabras clave para implementar la interfaz en estas clases;
Cree una clase que implementa la selección, define el método que implementa la selección en esta clase, y el valor de retorno del método es la clase de guardado de imagen correspondiente;
Implemente la interfaz en el método principal.
El código es el siguiente:
La copia del código es la siguiente:
Interfaz pública Imagesaver {
void save (); // define save () método
}
clase pública gifsaver implementa imagenesaver {
@Anular
Public void save () {// implement save () método
System.out.println ("Guardar la imagen en formato GIF");
}
}
clase pública jpegsaver implementa imágenes de lave {
@Anular
public void save () {
System.out.println ("Guardar la imagen en formato JPG");
}
}
clase pública PNGSaver implementa Imagesaver {
@Anular
public void save () {
System.out.println ("Guardar la imagen en formato PNG");
}
}
Typecooser de clase pública {
Public static imagesaver GetSaver (tipo de cadena) {
if (type.equalSignorEcase ("gif")) {// usa la instrucción if else para determinar el tipo de imagen
devolver nuevo gifsaver ();
} else if (type.equalsignorEcase ("jpeg")) {
devolver nuevo jpegsaver ();
} else if (type.equalSignorEcase ("png")) {
devolver nuevo pngsaver ();
} demás {
regresar nulo;
}
}
}
Usuario de clase pública {
public static void main (string [] args) {
System.out.print ("El usuario seleccionó el formato GIF:");
Imagesaver saver = typechooser.getSaver ("gif"); // Obtener el objeto que guarda la imagen como tipo GIF
Saver.save ();
System.out.print ("El formato JPEG seleccionado del usuario:"); // Obtenga la imagen guardada como objeto de tipo JPEG
saver = typechooser.getSaver ("jpeg");
Saver.save ();
System.out.print ("El formato PNG seleccionado por el usuario:"); // Obtenga el objeto que guarda la imagen como tipo PNG
saver = typechooser.getSaver ("png");
Saver.save ();
}
}