Setelah menggunakan perangkat lunak pemrosesan gambar untuk memproses gambar, Anda perlu memilih format untuk disimpan. Namun, algoritma yang diimplementasikan oleh berbagai format pada tingkat yang mendasarinya tidak sama, yang hanya sesuai dengan pola strategi. Tulis program yang menunjukkan cara mengembangkan menggunakan kombinasi pola kebijakan dan pola pabrik sederhana.
Idenya adalah sebagai berikut:
1. Gunakan antarmuka untuk menentukan antarmuka, dan tentukan metode save () di antarmuka;
2. Tentukan kelas yang berbeda sesuai dengan format gambar, dan gunakan implementasi kata kunci untuk mengimplementasikan antarmuka di kelas -kelas ini;
3. Buat kelas yang mengimplementasikan pemilihan, mendefinisikan metode yang mengimplementasikan pemilihan di kelas ini, dan nilai pengembalian metode ini adalah kelas penghematan gambar yang sesuai;
4. Menerapkan antarmuka dalam metode utama.
Kodenya adalah sebagai berikut:
Salinan kode adalah sebagai berikut:
gambar antarmuka publik {
void save (); // define save () metode
}
GifSaver kelas publik mengimplementasikan ImagesAver {
@Mengesampingkan
Metode public void save () {// implement
System.out.println ("Simpan gambar dalam format gif");
}
}
JPEGSAVER kelas publik mengimplementasikan ImagesAver {
@Mengesampingkan
public void save () {
System.out.println ("Simpan gambar dalam format jpg");
}
}
PNGSaver kelas publik mengimplementasikan ImagesAver {
@Mengesampingkan
public void save () {
System.out.println ("Simpan gambar dalam format png");
}
}
Typechooser kelas publik {
Public Static ImagesAver Getver (tipe string) {
if (type.equalsignorecase ("gif")) {// Gunakan pernyataan if lain untuk menentukan jenis gambar
mengembalikan gifsaver baru ();
} lain jika (type.equalsignorecase ("jpeg")) {
mengembalikan JPEGSAVER baru ();
} lain jika (type.equalsignorecase ("png")) {
mengembalikan pngsaver baru ();
} kalau tidak {
kembali nol;
}
}
}
pengguna kelas publik {
public static void main (string [] args) {
System.out.print ("Pengguna memilih format GIF:");
ImagesAver saver = Typechooser.getSaver ("gif"); // Dapatkan objek yang menyimpan gambar sebagai tipe gif
saver.save ();
System.out.print ("Format JPEG yang dipilih pengguna:"); // Dapatkan gambar yang disimpan sebagai objek JPEG Type
saver = typechooser.getSaver ("jpeg");
saver.save ();
System.out.print ("Format PNG yang dipilih pengguna:"); // Dapatkan objek yang menyimpan gambar sebagai tipe PNG
saver = typechooser.getSaver ("png");
saver.save ();
}
}
Efeknya ditunjukkan pada gambar: