Después de usar el software de procesamiento de imágenes para procesar imágenes, debe seleccionar un formato para guardar. Sin embargo, los algoritmos implementados por varios formatos en el nivel subyacente no son los mismos, lo que solo se ajusta al patrón de estrategia. Escriba un programa que demuestre cómo desarrollarse utilizando una combinación de patrones de políticas y patrones simples de fábrica.
La idea es la siguiente:
1. Use la interfaz para definir una interfaz y definir el método Guardar () en la interfaz;
2. Definir diferentes clases de acuerdo con el formato de imagen, y use los implementos de palabras clave para implementar la interfaz en estas clases;
3. 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;
4. 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 ();
}
}
El efecto se muestra en la imagen: