บทความนี้อธิบายถึงการใช้โหมดต้นแบบสำหรับ Java เพื่อแสดงชีวิตประจำวัน แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. คำจำกัดความรูปแบบ
ระบุประเภทของวัตถุที่จะสร้างด้วยอินสแตนซ์ต้นแบบและสร้างวัตถุใหม่โดยการคัดลอกต้นแบบเหล่านี้
2. ตัวอย่างของแบบจำลอง
1 การวิเคราะห์รูปแบบ
เราใช้สถานการณ์การทำงานประจำวันเพื่อแสดงโมเดลนี้
2 แผนภาพการวิเคราะห์เรื่องราว
3 โหมดต้นแบบแบบจำลองแบบคงที่
4 ตัวอย่างรหัส
4.1 การสร้างต้นแบบ
แพ็คเกจ com.prototype.pojo;/** * คลาสชีวิตประจำวัน * * @author * */DayLife ในชั้นเรียนสาธารณะใช้ cloneable {// วิธีสร้างวิธีการสาธารณะสาธารณะ () {system.out.println ("-วิธีการก่อสร้างถูกดำเนินการ!-"); } // รับการรับสตริงส่วนตัว; // ขึ้นรถบัสส่วนตัว bybus; // ออกไปซื้อสตริงส่วนตัวอาหารเช้า getfood; // งีบตอนเที่ยง // เริ่มทำงานในช่วงบ่ายตอนบ่าย // กลับบ้านจากการออกจากงานสตริงส่วนตัว Gohome; // Night Leisure Private String Night; สตริงสาธารณะ getGetup () {return getup; } โมฆะสาธารณะ setGetUp (สตริง getup) {this.getup = getUp; } สตริงสาธารณะ getByBus () {return bybus; } โมฆะสาธารณะ setByBus (สตริง bybus) {this.bybus = bybus; } สตริงสาธารณะ getGetFood () {return getFood; } โมฆะสาธารณะ setGetFood (String getFood) {this.getFood = getFood; } สตริงสาธารณะ getNoon () {return noon; } โมฆะสาธารณะ setNoon (สตริงเที่ยง) {this.noon = เที่ยง; } Public String getAfternoonwork () {return moundingwork; } โมฆะสาธารณะ setAhnoONOWWORK (String Afternoundwork) {this.workwork = ช่วงบ่าย; } สตริงสาธารณะ getGohome () {return gohome; } โมฆะสาธารณะ setGohome (สตริง gohome) {this.gohome = gohome; } สตริงสาธารณะ getNight () {return night; } โมฆะสาธารณะ setnight (String Night) {this.night = night; } / *** พิมพ์ข้อมูลชีวิตประจำวัน* / public void print () {system.out.println (this.getGetup ()); System.out.println (this.getByBus ()); System.out.println (this.getGetFood ()); System.out.println (this.getNoon ()); System.out.println (this.getAfternoonwork ()); System.out.println (this.getgohome ()); System.out.println (this.getnight ()); } / *** วิธีการโคลน* / @Override Public Daylife Clone () {ลอง {// เรียกวิธีการโคลนของ superclass (superclass? ไม่มีคลาสรวมอยู่ที่ไหน superclass มาจากไหนอย่าลืมคลาสทั้งหมดเป็น subclasses ของวัตถุ! } catch (exception e) {} return null; -4.2 สร้างโรงงานนามธรรมที่สร้างวัตถุต้นแบบ
แพ็คเกจ com.prototype.factory; นำเข้า com.prototype.pojo.daylife;/** * คลาสโรงงาน * * @author * */อินเตอร์เฟสสาธารณะ ilifefactory {/** * การผลิตวัตถุ Daylife * * @return */สาธารณะ4.3 สร้างโรงงานเฉพาะสำหรับการสร้างวัตถุต้นแบบ
แพ็คเกจ com.prototype.factory.impl; นำเข้า com.prototype.factory.ilifefactory; นำเข้า com.prototype.pojo.daylife;/** * คลาสการใช้งานจากโรงงาน * * @author * * /** * การใช้วิธี getNewInstance: * * ก่อนกำหนดว่า DAYLIFE นั้นเป็นโมฆะ: * ถ้าเป็นโมฆะให้ใช้ใหม่เพื่อสร้างวัตถุในเวลากลางวันให้ตั้งเนื้อหาเริ่มต้นแล้วกำหนดให้กับอินสแตนซ์วัตถุ DayLife แล้วกลับ; * หากไม่ใช่โมฆะให้ใช้วิธีการโคลนของ Daylift เพื่อสร้างวัตถุใหม่และคัดลอกไปยังวัตถุในเวลากลางวันจากนั้นส่งคืน */ @Override Public Daylife GetNewInstance () {// พิจารณาว่า DayLife เป็น NULL หรือไม่ถ้า (DayLife == NULL) หมายเหตุ: ใช้ใหม่นี้เพียงครั้งเดียว! System.out.println ("New Daylife!"); // ตั้งค่าเนื้อหาของ Daylife DayLife = New Daylife (); DayLife.SetGetUp ("ลุกขึ้นเวลา 7:00 น."); Daylife.setbybus ("ขึ้นรถบัสเวลา 7:30 น."); DayLife.SetGetFood ("GetGetget ลงที่ป้ายรถเมล์ใกล้ บริษัท เวลา 8:30 น. และเมื่อผ่านรถเช้าถัดจากถนนคุณจะซื้ออาหารเช้าและนำไปให้ บริษัท ด้วยกัน"); Daylife.setNoon ("อาหารกลางวันได้รับการแก้ไขในร้านอาหารเล็ก ๆ ใกล้กับ บริษัท แล้วงีบหลับที่ที่นั่งในสำนักงาน"); DayLife.SetAtHernoonwork ("13:30 เริ่มงานบ่าย"); DayLife.SetGohome ("17:30 ออกไปทำงานตรงเวลา"); Daylife.setnight ("Evening Entertainment"); } else {// ถ้าไม่ใช่ null // เอาต์พุตเป็นวัตถุที่สร้างขึ้นโดยใช้วิธีการโคลน System.out.println ("โคลนกลางวัน!"); // กำหนดวัตถุโคลนให้กับชีวิตกลางวันและส่งคืนกลางวัน = daylife.clone (); } return Daylife; -4.4 การแสดงสถานการณ์การทำงานประจำวัน
แพ็คเกจ com; นำเข้า com.prototype.factory.iliffactory; นำเข้า com.prototype.factory.impl.lifefactoryimpl; นำเข้า com.prototype.pojo.daylife;/** * แอปพลิเคชันหลัก * * @author */ไคลเอนต์ระดับสาธารณะ // พิมพ์ Out Life Content LifeFactory.getNewInstance (). พิมพ์ (); // รับ DayLife อีกครั้งแก้ไขเนื้อหา GetUp และเนื้อหาเอาต์พุต System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - DayLife2.SetGetup ("ฉันอยู่บนเตียงในตอนเช้าฉันตื่นขึ้นมาจนถึง 7 :: 30!");การรันผลลัพธ์
คนใหม่ในเวลากลางวัน!
- วิธีการก่อสร้างได้ถูกดำเนินการแล้ว! -
ตื่นนอนเวลา 7:00 น
ขึ้นรถบัสเวลา 7:30 น
ลงที่ป้ายรถเมล์ใกล้ บริษัท เวลา 8:30 น. เมื่อผ่านรถเช้าที่อยู่ติดกับถนนคุณจะซื้ออาหารเช้าและนำไปที่ บริษัท เพื่อทานอาหารกลางวัน จากนั้นงีบหลับที่ที่นั่งในสำนักงาน
งานบ่ายเริ่มเวลา 13:30 น
ออกไปทำงานตรงเวลาเวลา 17:30 น
-
CLONE DAYLIFE!
อยู่บนเตียงในตอนเช้า! 7 :: 15 ก่อนลุกขึ้น!
ขึ้นรถบัสเวลา 7:30 น
ลงที่ป้ายรถเมล์ใกล้ บริษัท เวลา 8:30 น. เมื่อผ่านรถเช้าที่อยู่ติดกับถนนคุณจะซื้ออาหารเช้าและนำไปที่ บริษัท เพื่อทานอาหารกลางวัน จากนั้นงีบหลับที่ที่นั่งในสำนักงาน
งานบ่ายเริ่มเวลา 13:30 น
ออกไปทำงานตรงเวลาเวลา 17:30 น
3. การออกแบบดั้งเดิมของรุ่นนี้
1 วิธีการสร้างของวัตถุไม่ได้ดำเนินการเมื่อโคลนวัตถุ
2 สำเนาตื้นและสำเนาลึก
4. ใช้โอกาส
1 กระบวนการสร้างคู่นั้นค่อนข้างซับซ้อนและการเริ่มต้นต้องใช้ทรัพยากรจำนวนมาก
2 เมื่อคุณต้องการต้นแบบเฟรมเวิร์กและวัตถุที่สร้างขึ้นเพื่อแยกออก
3 เมื่อผู้โทรรายอื่นเข้าถึงวัตถุเดียวกันในเวลาเดียวกัน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับอัลกอริทึม Java ผู้อ่านที่มีความสนใจในเว็บไซต์นี้สามารถดูหัวข้อ: "โครงสร้างข้อมูล Java และการสอนอัลกอริทึม", "บทสรุปของเคล็ดลับการดำเนินงาน Java Dom", "บทสรุปของไฟล์ Java และเคล็ดลับการดำเนินการไดเรกทอรี" และ "สรุป
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน