Depois de usar o software de processamento de imagens para processar imagens, você precisa selecionar um formato para salvar. No entanto, os algoritmos implementados por vários formatos no nível subjacente não são os mesmos, o que apenas se encaixa no padrão de estratégia. Escreva um programa que demonstre como desenvolver usando uma combinação de padrões políticos e padrões simples de fábrica.
A idéia é a seguinte:
1. Use a interface para definir uma interface e definir o método save () na interface;
2. Defina diferentes classes de acordo com o formato da imagem e use os implementos das palavras -chave para implementar a interface nessas classes;
3. Crie uma classe que implemente a seleção, define o método que implementa a seleção nesta classe e o valor de retorno do método é a classe de economia de imagem correspondente;
4. Implemente a interface no método principal.
O código é o seguinte:
A cópia do código é a seguinte:
Public Interface Imagesaver {
void save (); // define save () método
}
classe pública GifSaver implementa o ImagesAver {
@Override
public void save () {// implem o método save ()
System.out.println ("Salve a imagem no formato gif");
}
}
classe pública jpegsaver implementa o ImagesAver {
@Override
public void save () {
System.out.println ("Salve a imagem no formato jpg");
}
}
classe pública pngsaver implementa o ImagesAver {
@Override
public void save () {
System.out.println ("Salve a imagem no formato PNG");
}
}
classe pública TypeChooser {
public static imagraver getsaver (tipo string) {
if (type.equalsignorecase ("gif")) {// use a instrução if else para determinar o tipo da imagem
retornar novo gifSaver ();
} else if (type.equalsignorecase ("jpeg")) {
devolver novo jpegSaver ();
} else if (type.equalsignorecase ("png")) {
retornar novo pngSaver ();
} outro {
retornar nulo;
}
}
}
Public Class User {
public static void main (string [] args) {
System.out.print ("O usuário selecionou o formato GIF:");
ImagesAver economs = TypeChooser.getSaver ("gif"); // Obtenha o objeto que salva a imagem como tipo GIF
Saver.Save ();
System.out.print ("O usuário selecionado JPEG Format:"); // Obtenha a imagem salva como objeto JPEG Type
Saver = TypeChooser.getSaver ("jpeg");
Saver.Save ();
System.out.print ("O usuário selecionou o formato PNG:"); // Obtenha o objeto que salva a imagem como tipo PNG
Saver = TypeChooser.getSaver ("png");
Saver.Save ();
}
}
O efeito é mostrado na imagem: