โอกาสที่เกี่ยวข้อง:
7.3 โอกาสที่เกี่ยวข้องสำหรับรูปแบบโรงงาน
วิธีที่ง่ายที่สุดในการสร้างวัตถุใหม่คือการใช้คำหลักใหม่และคลาสคอนกรีต เฉพาะในบางโอกาสความซับซ้อนพิเศษของการสร้างและการบำรุงรักษาโรงงานวัตถุนั้นคุ้มค่ากับเงิน ส่วนนี้สรุปโอกาสเหล่านี้
7.3.1 การใช้งานแบบไดนามิก
หากคุณต้องการสร้างวัตถุที่ใช้อินเทอร์เฟซเดียวกันในรูปแบบที่แตกต่างกันเช่นตัวอย่างจักรยานก่อนหน้านี้คุณสามารถใช้วิธีการโรงงานหรือวัตถุโรงงานอย่างง่ายเพื่อทำให้กระบวนการเลือกการใช้งานง่ายขึ้น ตัวเลือกนี้สามารถทำได้อย่างชัดเจนหรือโดยปริยาย อดีตเป็นเหมือนตัวอย่างจักรยานและลูกค้าสามารถเลือกรุ่นจักรยานที่คุณต้องการ ในขณะที่ตัวอย่างโรงงาน XHR ที่กล่าวถึงในส่วนถัดไปเป็นของหลัง ประเภทของวัตถุการเชื่อมต่อที่ส่งคืนในตัวอย่างนี้ขึ้นอยู่กับแบนด์วิดท์ที่ตรวจพบและปัจจัยการหน่วงเวลาของเครือข่าย ในสถานการณ์เหล่านี้คุณมักจะต้องจัดการกับชุดของคลาสที่ใช้อินเทอร์เฟซเดียวกันและสามารถรักษาได้อย่างเท่าเทียมกัน นี่คือสาเหตุที่พบบ่อยที่สุดสำหรับการใช้รูปแบบโรงงานใน JavaScript
7.3.2 บันทึกการตั้งค่าค่าใช้จ่าย
หากวัตถุจำเป็นต้องซับซ้อนและเกี่ยวข้องซึ่งกันและกันการใช้โหมดโรงงานสามารถลดจำนวนรหัสที่จำเป็นสำหรับแต่ละวัตถุ เอฟเฟกต์นี้โดดเด่นเป็นพิเศษหากการตั้งค่านี้จะต้องดำเนินการเพียงครั้งเดียวสำหรับทุกกรณีของประเภทใดประเภทหนึ่ง การใส่รหัสการตั้งค่านี้ลงในตัวสร้างคลาสไม่ใช่วิธีการที่มีประสิทธิภาพเพราะแม้ว่าการตั้งค่าจะเสร็จสมบูรณ์โค้ดจะยังคงดำเนินการทุกครั้งที่มีการสร้างอินสแตนซ์ใหม่และการทำเช่นนั้นจะแจกจ่ายรหัสการตั้งค่าไปยังคลาสที่แตกต่างกัน วิธีการโรงงานเหมาะสำหรับโอกาสนี้ สามารถตั้งค่าได้ในครั้งเดียวก่อนที่จะสร้างอินสแตนซ์วัตถุที่จำเป็นทั้งหมด ไม่ว่าจะมีคลาสที่แตกต่างกันกี่วิธีวิธีนี้สามารถเก็บรหัสการตั้งค่าไว้ในที่เดียว
สิ่งนี้มีประโยชน์อย่างยิ่งหากชั้นเรียนที่ใช้ต้องมีไลบรารีภายนอกที่จะโหลด วิธีการจากโรงงานสามารถตรวจสอบไลบรารีเหล่านี้และโหลดแบบไดนามิกที่ไม่พบ รหัสการตั้งค่าเหล่านี้มีอยู่ในที่เดียวดังนั้นจึงสะดวกกว่ามากในการแก้ไขในภายหลัง
7.3.3 สร้างวัตถุขนาดใหญ่ที่มีวัตถุขนาดเล็กจำนวนมาก
วิธีการโรงงานสามารถใช้ในการสร้างวัตถุที่ห่อหุ้มวัตถุขนาดเล็กจำนวนมาก พิจารณาตัวสร้างของวัตถุจักรยาน จักรยานมีระบบย่อยขนาดเล็กจำนวนมาก: ล้อเฟรมส่วนประกอบการส่งและเบรก หากคุณไม่ต้องการการมีเพศสัมพันธ์ที่แข็งแกร่งระหว่างระบบย่อยและวัตถุที่มีขนาดใหญ่กว่า แต่ต้องการเลือกจากระบบย่อยหลายระบบในรันไทม์วิธีการโรงงานเป็นตัวเลือกที่เหมาะ การใช้เทคโนโลยีนี้คุณสามารถจับคู่จักรยานทั้งหมดที่คุณขายได้ด้วยโซ่บางชนิดและหากคุณพบโซ่ที่ชื่นชอบอีกอย่างในวันถัดไปคุณสามารถใช้ความหลากหลายใหม่นี้แทน เป็นเรื่องง่ายที่จะใช้การเปลี่ยนแปลงนี้เนื่องจากตัวสร้างของชั้นเรียนจักรยานเหล่านี้ไม่ได้ขึ้นอยู่กับความหลากหลายของห่วงโซ่เฉพาะ ตัวอย่าง RSS Reader ในบทนี้แสดงให้เห็นถึงการใช้แบบจำลองโรงงานในเรื่องนี้
รูปแบบโรงงานส่วนใหญ่จัดให้มีอินเทอร์เฟซสำหรับการสร้างวัตถุ แบบจำลองโรงงานแบ่งออกเป็นสามประเภทตามข้อกำหนดใน "Java and Pattern":
1. โรงงานเรียบง่าย
2. วิธีโรงงาน
3. โรงงานนามธรรม
รูปแบบทั้งสามนี้ค่อยๆเป็นนามธรรมจากบนลงล่างและทั่วไปมากขึ้น นอกจากนี้ยังมีวิธีการจำแนกประเภทซึ่งเป็นการพิจารณาแบบจำลองโรงงานอย่างง่ายเป็นกรณีพิเศษของแบบจำลองวิธีการโรงงานและทั้งสองถูกจัดประเภทเป็นหมวดหมู่เดียวกัน นี่คือสองสถานการณ์ที่ใช้โหมดโรงงาน:
1. เมื่อเข้ารหัสคุณไม่สามารถคาดการณ์ได้ว่าคุณต้องสร้างอินสแตนซ์แบบไหน
2. ระบบไม่ควรพึ่งพารายละเอียดเกี่ยวกับวิธีการสร้างอินสแตนซ์คลาสผลิตภัณฑ์รวมกันและแสดง
3. แบบจำลองโรงงานง่ายๆ
ตามชื่อที่แนะนำโมเดลนี้เองนั้นง่ายและใช้ในสถานการณ์ที่ธุรกิจง่ายขึ้น
ประกอบด้วยสามบทบาท (ดูแผนภาพระดับด้านล่างสำหรับความสัมพันธ์):
1. บทบาทจากโรงงาน: นี่คือแกนหลักของรุ่นนี้ซึ่งมีตรรกะทางธุรกิจและตรรกะการตัดสินบางอย่าง ใน Java มันมักจะถูกนำไปใช้โดยคลาสคอนกรีต
2. บทบาทผลิตภัณฑ์บทคัดย่อ: โดยทั่วไปจะเป็นคลาสหลักที่สืบทอดมาจากผลิตภัณฑ์เฉพาะหรืออินเทอร์เฟซที่นำมาใช้ ดำเนินการโดยอินเทอร์เฟซหรือคลาสนามธรรมใน Java
3. บทบาทผลิตภัณฑ์เฉพาะ: วัตถุที่สร้างโดยคลาสโรงงานเป็นตัวอย่างของบทบาทนี้ ดำเนินการโดยคลาสคอนกรีตใน Java
ดังนั้นจะใช้โมเดลโรงงานง่าย ๆ ได้อย่างไร? ให้ฉันยกตัวอย่างให้คุณ ฉันคิดว่านี่ง่ายกว่าที่จะเข้าใจมากกว่าคำอธิบายข้อความทางทฤษฎีที่ยาวนาน! นี่คือการรักษาสำหรับ Nouveau Riche: P
หลังจากใช้โมเดลโรงงานเรียบง่ายตอนนี้ Nouveau Riche ตอนนี้ต้องนั่งในรถและพูดกับคนขับ: "ขับรถ" มาดูกันว่ามันถูกนำไปใช้อย่างไร:
// บทคัดย่อบทบาทผลิตภัณฑ์อินเทอร์เฟซสาธารณะ {public void drive (); } // บทบาทผลิตภัณฑ์เฉพาะระดับสาธารณะ Benz ใช้รถยนต์ {โมฆะสาธารณะไดรฟ์สาธารณะ () {system.out.println ("ขับเบนซ์"); }} คลาสสาธารณะ BMW ใช้รถยนต์ {public void drive () {system.out.println ("การขับขี่ BMW"); - - - (ฉันจะไม่เขียน Audi: P) // บทบาทระดับโรงงานไดรเวอร์ระดับสาธารณะ {// วิธีการเป็นโรงงาน // โปรดทราบว่าประเภทการส่งคืนเป็นบทบาทที่เป็นนามธรรมของผลิตภัณฑ์ที่เป็นนามธรรมของ Public Static Car Car Carcar (String s) โยนข้อยกเว้น {// Judge Logic, ส่งคืนบทบาทผลิตภัณฑ์เฉพาะให้กับลูกค้าหาก (S.EqualSignorecase ("Benz") อื่นถ้า (s.equalsignorecase ("BMW")) ส่งคืน BMW ใหม่ (); ...... อื่น ๆ โยนข้อยกเว้นใหม่ (); - - - // ยินดีต้อนรับ Nouveau Riche ที่จะปรากฏ ... เจ้าสัวคลาสสาธารณะ {โมฆะคงที่สาธารณะหลัก (String [] args) {ลอง {// บอกคนขับว่าฉันใช้รถเมอร์เซเดส-เบนซ์ = driver.drivercar ("เบนซ์"); // ให้คำสั่ง: ไดรฟ์ (); - -หากคุณใส่คลาสทั้งหมดไว้ในไฟล์เดียวอย่าลืมว่ามีการประกาศคลาสเดียวเท่านั้น ความสัมพันธ์ระหว่างชั้นเรียนในโปรแกรมมีดังนี้:
นี่คือแบบจำลองโรงงานง่ายๆ นี่คือประโยชน์:
ก่อนอื่นหลังจากใช้แบบจำลองโรงงานง่ายโปรแกรมของเราไม่ได้ "ป่วย" และสอดคล้องกับความเป็นจริงมากขึ้น และลูกค้าได้รับการยกเว้นจากความรับผิดชอบในการสร้างวัตถุผลิตภัณฑ์โดยตรง แต่มีความรับผิดชอบเฉพาะผลิตภัณฑ์ "บริโภค" (ตามที่ Nouveau Riche ทำ)
มาวิเคราะห์แบบจำลองโรงงานง่าย ๆ จากหลักการเปิดและปิด เมื่อ Nouveau Riche เพิ่มรถยนต์ตราบใดที่มันเป็นไปตามสัญญาที่กำหนดโดยผลิตภัณฑ์นามธรรมก็สามารถใช้งานได้โดยลูกค้าตราบเท่าที่มันถูกแจ้งให้โรงงานทราบ ดังนั้นสำหรับส่วนผลิตภัณฑ์มันสอดคล้องกับหลักการของการเปิดและปิด - การเปิดสำหรับการขยายและปิดสำหรับการปรับเปลี่ยน; แต่ส่วนโรงงานดูเหมือนจะไม่เหมาะเพราะทุกครั้งที่มีการเพิ่มรถยนต์ต้องเพิ่มตรรกะทางธุรกิจที่สอดคล้องกันและตรรกะการตัดสินลงในชั้นเรียนโรงงานซึ่งเป็นการละเมิดหลักการของการเปิดและปิด
สำหรับชั้นเรียนโรงงาน (ในกรณีของเราสำหรับคนขับ) เราเรียกมันว่าคลาสที่ยิ่งใหญ่หรือคลาสพระเจ้า
ตัวอย่างที่เราให้เป็นกรณีที่ง่ายที่สุดและในการใช้งานจริงมีแนวโน้มว่าผลิตภัณฑ์จะเป็นโครงสร้างต้นไม้หลายระดับ เนื่องจากมีคลาสโรงงานเพียงแห่งเดียวในรูปแบบโรงงานง่าย ๆ ที่สอดคล้องกับผลิตภัณฑ์เหล่านี้สิ่งนี้อาจทำลายคลาสพระเจ้าของเราและทำให้โปรแกรมเมอร์น่ารักของเราหมดลง :(
ดังที่ฉันได้กล่าวไว้ก่อนหน้านี้โมเดลโรงงานง่าย ๆ เหมาะสำหรับสถานการณ์ที่ธุรกิจจะง่าย แต่มันอาจจะไม่สามารถปรับให้เข้ากับสภาพแวดล้อมทางธุรกิจที่ซับซ้อนได้มากนัก สิ่งนี้ควรทำโดยโมเดลวิธีการโรงงาน! -
4. แบบจำลองวิธีการเป็นโรงงาน
มาดูองค์ประกอบของมันก่อน:
1. บทคัดย่อบทบาทโรงงาน: นี่คือแกนหลักของรูปแบบวิธีการโรงงานมันไม่มีส่วนเกี่ยวข้องกับแอปพลิเคชัน มันเป็นอินเทอร์เฟซที่บทบาทโรงงานเฉพาะจะต้องใช้หรือคลาสแม่ที่ต้องสืบทอด ใน Java มันถูกนำไปใช้โดยคลาสนามธรรมหรืออินเทอร์เฟซ
2. บทบาทโรงงานเฉพาะ: มีรหัสที่เกี่ยวข้องกับตรรกะทางธุรกิจเฉพาะ เรียกโดยแอปพลิเคชันเพื่อสร้างวัตถุผลิตภัณฑ์เฉพาะที่สอดคล้องกัน ใน Java มันถูกนำไปใช้โดยคลาสคอนกรีต
3. บทบาทผลิตภัณฑ์บทคัดย่อ: เป็นคลาสหลักที่สืบทอดมาจากผลิตภัณฑ์เฉพาะหรืออินเทอร์เฟซที่ใช้งาน ใน Java โดยทั่วไปจะมีคลาสที่เป็นนามธรรมหรืออินเทอร์เฟซเพื่อนำไปใช้
4. บทบาทผลิตภัณฑ์เฉพาะ: วัตถุที่สร้างขึ้นโดยบทบาทโรงงานเฉพาะเป็นตัวอย่างของบทบาทนี้ ดำเนินการโดยคลาสคอนกรีตใน Java
ใช้ไดอะแกรมคลาสเพื่อแสดงถึงความสัมพันธ์ระหว่างพวกเขาอย่างชัดเจน:
ลองใช้ตัวอย่างที่สมบูรณ์เพื่อดูว่าบทบาทต่าง ๆ ในแบบจำลองโรงงานมีการประสานงานอย่างไร เมื่อพูดถึงธุรกิจของ Nouveau Riche ยิ่งพวกเขาชื่นชอบรถยนต์มากขึ้นเรื่อย ๆ สิ่งนี้ทำให้คนขับต้องทนทุกข์ทรมาน เขาต้องจดจำและบำรุงรักษารถทุกคันและเขาต้องใช้มัน! ดังนั้นคนที่ร่ำรวยนูโวเห็นอกเห็นใจเขาและพูดว่า: มันขึ้นอยู่กับปีของคุณกับฉันคุณจะไม่ต้องทำงานหนักในอนาคต ฉันจะมอบหมายพนักงานสองสามคนให้คุณดูแลพวกเขา! ดังนั้นการจัดการแบบจำลองวิธีการโรงงานจึงเกิดขึ้น รหัสมีดังนี้:
// บทบาทของผลิตภัณฑ์บทคัดย่อบทบาทของผลิตภัณฑ์เฉพาะนั้นคล้ายกับโมเดลโรงงานง่าย ๆ แต่พวกเขามีความซับซ้อนมากขึ้นเล็กน้อยนี่คือการละเว้นเล็กน้อย // บทคัดย่อบทบาทโรงงานไดรเวอร์ส่วนต่อประสานสาธารณะ {Public Car Drivercar (); } คลาสสาธารณะ BenzDriver ใช้ไดรเวอร์ {Public Car Drivercar () {return New Benz (); }} คลาสสาธารณะ bmwdriver ใช้ไดรเวอร์ {public car drivercar () {ส่งคืน bmw ใหม่ (); }} ...... // มันควรสร้างความสัมพันธ์ที่สอดคล้องกับผลิตภัณฑ์เฉพาะที่นี่ ... // โปรดถาม Mr. Nouveaux กับเจ้าสัวระดับสาธารณะ {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {ลอง {ไดร์เวอร์ไดร์เวอร์ = new benzdriver (); รถยนต์รถยนต์ = driver.drivercar (); car.drive (); } catch (Exception E) {}}}}วิธีการโรงงานใช้บทบาทโรงงานนามธรรมเป็นแกนกลางแทนที่จะใช้คลาสคอนกรีตเป็นแกนกลางในรูปแบบโรงงานง่าย ๆ มาดูกันว่าโมเดลวิธีการของโรงงานนำมาให้เรา? ใช้หลักการของการเปิดและปิดเพื่อวิเคราะห์แบบจำลองวิธีการโรงงาน เมื่อผลิตภัณฑ์ใหม่ (เช่นรถของ Nouveau Riche) ถูกสร้างขึ้นตราบใดที่มันถูกสร้างขึ้นตามสัญญาที่ได้รับจากบทบาทผลิตภัณฑ์นามธรรมและบทบาทโรงงานนามธรรมมันสามารถใช้งานได้โดยลูกค้าโดยไม่ต้องแก้ไขรหัสที่มีอยู่ ดูเหมือนว่าโมเดลวิธีการโรงงานจะสอดคล้องกับหลักการของการเปิดและปิด!
การใช้รูปแบบวิธีการโรงงานนั้นเพียงพอที่จะรับมือกับความต้องการทางธุรกิจส่วนใหญ่ที่เราอาจพบ อย่างไรก็ตามเมื่อมีผลิตภัณฑ์หลายประเภทหมวดหมู่โรงงานที่สอดคล้องกันจำนวนมากจะปรากฏขึ้นซึ่งไม่ควรเป็นสิ่งที่เราหวัง ดังนั้นฉันขอแนะนำให้ใช้รูปแบบโรงงานอย่างง่ายในกรณีนี้รวมกับรูปแบบวิธีการโรงงานเพื่อลดระดับโรงงาน: นั่นคือการใช้รูปแบบโรงงานง่าย ๆ สำหรับสปีชีส์ที่คล้ายกันบนต้นไม้ผลิตภัณฑ์ (โดยปกติแล้วจะเป็นพี่น้องในใบไม้ของต้นไม้)
แน่นอนว่าสถานการณ์พิเศษจะต้องได้รับการรักษาด้วยการรักษาพิเศษ: สำหรับต้นไม้ผลิตภัณฑ์ที่แตกต่างกันในระบบและมีตระกูลผลิตภัณฑ์บนต้นไม้ผลิตภัณฑ์จากนั้นในกรณีนี้อาจใช้แบบจำลองโรงงานนามธรรม
5. สรุป
มาดูแรงบันดาลใจที่กำหนดโดยโมเดลโรงงาน Simple และแบบจำลองวิธีการเป็นโรงงาน:
หากเราไม่ใช้รูปแบบจากโรงงานเพื่อใช้ตัวอย่างของเราบางทีรหัสอาจจะน้อยกว่ามาก - เพียงแค่ใช้รถยนต์ที่มีอยู่โดยไม่ต้องใช้ polymorphism แต่ในแง่ของการบำรุงรักษาความสามารถในการปรับขนาดได้แย่มาก (คุณสามารถจินตนาการถึงชั้นเรียนที่คุณต้องการสัมผัสหลังจากเพิ่มรถยนต์) ดังนั้นเพื่อปรับปรุงความสามารถในการปรับขนาดและการบำรุงรักษาจึงคุ้มค่าที่จะเขียนโค้ดเพิ่มเติม
6. รูปแบบโรงงานนามธรรม
ก่อนอื่นให้เข้าใจว่าครอบครัวผลิตภัณฑ์คืออะไร: ครอบครัวของผลิตภัณฑ์ที่ประกอบด้วยฟังก์ชั่นที่อยู่ในลำดับชั้นและโครงสร้างของผลิตภัณฑ์ที่แตกต่างกัน หากคุณสามารถเข้าใจแนวคิดนี้ได้อย่างชัดเจนโดยเพียงแค่อ่านประโยคนี้ฉันต้องชื่นชมคุณ ลองใช้ตัวอย่างเพื่อแสดงให้เห็นอย่างชัดเจน
BMWCAR และ BENZCAR ในรูปมีสองต้นผลิตภัณฑ์ (ลำดับชั้นผลิตภัณฑ์); ในขณะที่ Benzsportscar และ BMWSportscar ดังแสดงในรูปเป็นหนึ่งตระกูลผลิตภัณฑ์ พวกเขาทั้งหมดสามารถวางไว้ในตระกูลรถสปอร์ตดังนั้นฟังก์ชั่นเกี่ยวข้องกัน ในทำนองเดียวกัน bmwbussinesscar และ benzsportscar ก็เป็นครอบครัวผลิตภัณฑ์เดียวกัน
กลับไปที่หัวข้อของแบบจำลองผลิตภัณฑ์นามธรรมอาจกล่าวได้ว่าความแตกต่างระหว่างมันกับโมเดลวิธีการโรงงานอยู่ในความซับซ้อนของความจำเป็นในการสร้างวัตถุ ยิ่งไปกว่านั้นรูปแบบโรงงานนามธรรมเป็นนามธรรมและทั่วไปมากที่สุดในสามคน วัตถุประสงค์ของรูปแบบโรงงานนามธรรมคือการจัดหาอินเทอร์เฟซให้กับลูกค้าเพื่อสร้างวัตถุผลิตภัณฑ์ในหลายตระกูลผลิตภัณฑ์ ยิ่งไปกว่านั้นเงื่อนไขต่อไปนี้จะต้องปฏิบัติตามเมื่อใช้รูปแบบโรงงานนามธรรม:
1. มีหลายตระกูลผลิตภัณฑ์ในระบบและระบบสามารถใช้ผลิตภัณฑ์ได้ครั้งละหนึ่งรายการเท่านั้น
2. ใช้ผลิตภัณฑ์ที่เป็นของตระกูลผลิตภัณฑ์เดียวกัน
มาดูบทบาทต่าง ๆ ของรูปแบบโรงงานนามธรรม (เหมือนกับวิธีการโรงงาน):
บทคัดย่อบทบาทโรงงาน: นี่คือแกนหลักของรูปแบบวิธีการโรงงานมันไม่มีส่วนเกี่ยวข้องกับแอปพลิเคชัน มันเป็นอินเทอร์เฟซที่บทบาทโรงงานเฉพาะจะต้องใช้หรือคลาสแม่ที่ต้องสืบทอด ใน Java มันถูกนำไปใช้โดยคลาสนามธรรมหรืออินเทอร์เฟซ
บทบาทโรงงานเฉพาะ: มันมีรหัสที่เกี่ยวข้องกับตรรกะทางธุรกิจเฉพาะ เรียกโดยแอปพลิเคชันเพื่อสร้างวัตถุผลิตภัณฑ์เฉพาะที่สอดคล้องกัน ใน Java มันถูกนำไปใช้โดยคลาสคอนกรีต
บทคัดย่อบทบาทผลิตภัณฑ์: เป็นคลาสแม่หรืออินเทอร์เฟซการใช้งานของการสืบทอดผลิตภัณฑ์เฉพาะ ใน Java โดยทั่วไปจะมีคลาสที่เป็นนามธรรมหรืออินเทอร์เฟซเพื่อนำไปใช้
บทบาทผลิตภัณฑ์เฉพาะ: วัตถุที่สร้างขึ้นโดยบทบาทโรงงานเฉพาะเป็นตัวอย่างของบทบาทนี้ ดำเนินการโดยคลาสคอนกรีตใน Java
หลังจากอ่านสองโหมดแรกฉันควรมีความคิดที่ชัดเจนเกี่ยวกับการประสานงานระหว่างตัวละครต่าง ๆ ในโหมดนี้ดังนั้นฉันจะไม่ให้ตัวอย่างเฉพาะ เป็นเพียงการที่คุณต้องใส่ใจในการปฏิบัติตามเงื่อนไขสำหรับการใช้แบบจำลองโรงงานนามธรรมมิฉะนั้นแม้ว่าจะมีต้นไม้หลายผลิตภัณฑ์ แต่ก็ยังมีครอบครัวผลิตภัณฑ์ แต่ไม่สามารถใช้งานได้
บทความข้างต้นมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับรูปแบบโรงงานทั้งสามของ Java นี่คือเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น