หลังจากใช้ซอฟต์แวร์ประมวลผลภาพเพื่อประมวลผลภาพคุณต้องเลือกรูปแบบเพื่อบันทึก อย่างไรก็ตามอัลกอริทึมที่ดำเนินการโดยรูปแบบต่าง ๆ ในระดับพื้นฐานนั้นไม่เหมือนกันซึ่งเหมาะกับรูปแบบกลยุทธ์ เขียนโปรแกรมที่แสดงให้เห็นถึงวิธีการพัฒนาโดยใช้การผสมผสานของรูปแบบนโยบายและรูปแบบของโรงงานอย่างง่าย
แนวคิดมีดังนี้:
1. ใช้อินเทอร์เฟซเพื่อกำหนดอินเทอร์เฟซและกำหนดวิธีการบันทึก () ในอินเตอร์เฟส
2. กำหนดคลาสที่แตกต่างกันตามรูปแบบภาพและใช้การใช้คำหลักเพื่อใช้อินเทอร์เฟซในคลาสเหล่านี้
3. สร้างคลาสที่ใช้การเลือกกำหนดวิธีการที่ใช้การเลือกในคลาสนี้และค่าส่งคืนของวิธีการคือคลาสการบันทึกภาพที่สอดคล้องกัน
4. ใช้อินเทอร์เฟซในวิธีการหลัก
รหัสมีดังนี้:
การคัดลอกรหัสมีดังนี้:
Imagesaver อินเตอร์เฟสสาธารณะ {
โมฆะบันทึก (); // กำหนดวิธีการบันทึก ()
-
คลาสสาธารณะ GIFSaver ใช้ ImagesAver {
@Override
โมฆะสาธารณะบันทึก () {// ใช้วิธีการบันทึก ()
System.out.println ("บันทึกรูปภาพในรูปแบบ GIF");
-
-
คลาสสาธารณะ JPEGSAVER ใช้ ImagesAver {
@Override
โมฆะสาธารณะบันทึก () {
System.out.println ("บันทึกรูปภาพในรูปแบบ jpg");
-
-
PNGSAVER ระดับสาธารณะใช้ ImagesAver {
@Override
โมฆะสาธารณะบันทึก () {
System.out.println ("บันทึกรูปภาพในรูปแบบ png");
-
-
Typechooser ชั้นเรียนสาธารณะ {
Public Static Imagesaver GetSaver (ประเภทสตริง) {
if (type.equalsignorecase ("gif")) {// ใช้คำสั่ง if else เพื่อกำหนดประเภทของภาพ
ส่งคืน gifsaver ใหม่ ();
} อื่นถ้า (type.equalsignorecase ("jpeg")) {
ส่งคืน JPEGSAVER ใหม่ ();
} อื่นถ้า (type.equalsignorecase ("png")) {
ส่งคืน pngsaver ใหม่ ();
} อื่น {
คืนค่า null;
-
-
-
ผู้ใช้ระดับสาธารณะ {
โมฆะคงที่สาธารณะหลัก (สตริง [] args) {
System.out.print ("ผู้ใช้เลือกรูปแบบ GIF:");
รูปภาพ Saver = TypeChooser.getSaver ("gif"); // รับวัตถุที่บันทึกภาพเป็นประเภท gif
saver.save ();
System.out.print ("รูปแบบ JPEG ที่ผู้ใช้เลือก:"); // รับภาพที่บันทึกเป็นวัตถุประเภท JPEG
saver = typechooser.getsaver ("jpeg");
saver.save ();
System.out.print ("รูปแบบ PNG ที่ผู้ใช้เลือก:"); // รับวัตถุที่บันทึกภาพเป็นประเภท PNG
saver = typechooser.getsaver ("png");
saver.save ();
-
-
เอฟเฟกต์แสดงในภาพ: