สูงสุด 22 Java คำถามสัมภาษณ์รูปแบบการออกแบบ (2026)
ที่นี่มี Java คำถามและคำตอบในการสัมภาษณ์ Design Patterns สำหรับผู้สมัครหน้าใหม่และผู้มีประสบการณ์เพื่อให้ได้งานในฝัน
คำถามและคำตอบสัมภาษณ์รูปแบบการออกแบบสำหรับนักศึกษาใหม่
1) อธิบายว่ามันคืออะไร Java รูปแบบการออกแบบ?
รูปแบบการออกแบบเป็นกลยุทธ์ที่เป็นอิสระทางภาษาสำหรับการแก้ปัญหาการออกแบบเชิงวัตถุทั่วไป โดยจะอธิบายวิธีการจัดโครงสร้างคลาสให้ตรงตามข้อกำหนดที่กำหนด
2) อธิบายว่ารูปแบบการออกแบบเชิงสร้างสรรค์และรูปแบบโรงงานคืออะไร?
รูปแบบการออกแบบที่สร้างสรรค์: รูปแบบนี้ใช้เพื่อกำหนดและอธิบายวิธีการสร้างอ็อบเจ็กต์ ณ เวลาสร้างอินสแตนซ์ของคลาส
ลายโรงงาน: รูปแบบโรงงานใช้เพื่อสร้างออบเจ็กต์โดยไม่เปิดเผยตรรกะการสร้างให้ไคลเอ็นต์ทราบ และอ้างอิงถึงออบเจ็กต์ที่สร้างขึ้นใหม่โดยใช้อินเทอร์เฟซทั่วไป
👉 ดาวน์โหลด PDF ฟรี: Java คำถามและคำตอบสัมภาษณ์รูปแบบการออกแบบ
3) รูปแบบการออกแบบใดที่ใช้ในการเข้าถึงองค์ประกอบของวัตถุคอลเลกชันตามลำดับ?
รูปแบบตัววนซ้ำใช้เพื่อเข้าถึงองค์ประกอบของวัตถุคอลเลกชันตามลำดับ
4) เมื่อใช้รูปแบบตัวระบุตำแหน่งบริการเมื่อใด
เมื่อเราต้องการค้นหาบริการต่างๆ โดยใช้ JNDI เราจะใช้รูปแบบตัวระบุตำแหน่งบริการ
5) กล่าวถึงคุณสามารถสร้างรูปแบบซิงเกิลตันได้หลายวิธี?
การสร้างวัตถุชิ้นเดียวมีสองวิธีที่มีชื่อเสียง
- โหลดขี้เกียจ
- กำลังโหลดอย่างกระตือรือร้น

6) จงระบุรูปแบบที่ใช้เมื่อต้องการแยกส่วน abs ออกจากกันtracผลกระทบจากการนำไปใช้?
เมื่อเราต้องการแยกส่วน abs ออกจากกันtracจากวิธีการนำไปใช้เพื่อให้ทั้งสองส่วนสามารถเปลี่ยนแปลงได้อย่างอิสระ เราจึงใช้รูปแบบสะพาน (bridge pattern)
7) พูดถึงรูปแบบการออกแบบใดที่จะเป็นประโยชน์ในการเพิ่มฟังก์ชันการทำงานใหม่ให้กับออบเจ็กต์ที่มีอยู่
รูปแบบมัณฑนากรช่วยให้ผู้ใช้สามารถเพิ่มฟังก์ชันการทำงานใหม่ให้กับวัตถุที่มีอยู่ได้โดยไม่ต้องเปลี่ยนโครงสร้าง
8) อธิบายว่าคุณสามารถสร้างคลาส Singleton ได้อย่างไร Java?
เป็นกระบวนการสองขั้นตอน
- ก่อนอื่น ให้สร้าง constructor ให้เป็นแบบส่วนตัว เพื่อที่ตัวดำเนินการใหม่จะไม่สามารถถูกใช้เพื่อสร้างอินสแตนซ์ของคลาสได้
- ส่งคืนวัตถุของวัตถุหากไม่ใช่ค่า null มิฉะนั้นให้สร้างวัตถุขึ้นมาและส่งคืนผ่านวิธีการ
9) เป็นไปได้ไหมที่จะเขียน thread safe singleton ลงไป Java?
ในการเขียน thread safe singleton เข้าไป Java มีหลายวิธีตัวอย่างเช่น การใช้อินสแตนซ์ซิงเกิลตันแบบคงที่ที่เริ่มต้นในระหว่างการโหลดคลาส หรือการเขียนซิงเกิลตันโดยใช้การล็อกแบบตรวจสอบสองครั้ง Java Enum เป็นวิธีที่ง่ายที่สุดในการสร้างซิงเกิลตันที่ปลอดภัยสำหรับเธรด
10) พูดถึงว่าเราควรอธิบายรูปแบบการออกแบบอย่างไร?
ในการอธิบายรูปแบบการออกแบบ จำเป็นต้องคำนึงถึงสิ่งต่อไปนี้
- ชื่อรูปแบบและการจำแนกประเภท
- ปัญหาและแนวทางแก้ไข
- ผลที่ตามมา : ทางเลือกที่ขึ้นกับความหลากหลายและภาษาควรได้รับการแก้ไขด้วย
- รู้การใช้งาน: ระบุการใช้งานในระบบจริงและประสิทธิภาพของระบบ
11) กล่าวถึงสาเหตุที่ไม่อนุญาตให้เข้าถึงตัวแปรที่ไม่คงที่จากวิธีคงที่ Java?
คุณไม่สามารถเข้าถึงข้อมูลที่ไม่ใช่แบบคงที่จากบริบทแบบคงที่ได้ เนื่องจากตัวแปรที่ไม่ใช่แบบคงที่เชื่อมโยงกับอินสแตนซ์เฉพาะของออบเจ็กต์ ในขณะที่แบบคงที่ไม่เชื่อมโยงกับอินสแตนซ์ใดๆ
12) พูดถึงรูปแบบใดที่มีประโยชน์เมื่อต้องส่งข้อมูลที่มีคุณลักษณะหลายอย่างในช็อตเดียวจากไคลเอนต์ไปยังเซิร์ฟเวอร์
รูปแบบวัตถุถ่ายโอนมีประโยชน์เมื่อต้องส่งข้อมูลที่มีคุณลักษณะหลายรายการในช็อตเดียวจากไคลเอนต์ไปยังเซิร์ฟเวอร์
13) ตั้งชื่อเอนทิตีบางส่วนของรูปแบบ DAO หรือไม่
หน่วยงานบางส่วนของ DAO ได้แก่
- การเข้าถึงข้อมูลคลาสวัตถุที่เป็นรูปธรรม
- อินเทอร์เฟซออบเจ็กต์การเข้าถึงข้อมูล
- วัตถุโมเดลหรือวัตถุค่า
14) กล่าวถึงเมื่อใดที่คุณสามารถใช้รูปแบบการสกัดกั้นได้?
รูปแบบการสกัดกั้นจะใช้เมื่อคุณต้องทำการประมวลผลก่อนหรือหลังการประมวลผลโดยมีการร้องขอหรือตอบกลับของแอปพลิเคชัน
15) พูดถึงเมื่อใดควรใช้ Factory Pattern?
สามารถใช้รูปแบบโรงงานได้
- เมื่อคลาสไม่รู้ว่าต้องสร้างคลาสของอ็อบเจ็กต์ใด
- เมื่อคลาสระบุคลาสย่อยเพื่อระบุอ็อบเจ็กต์ที่จะสร้าง
- ในภาษาการเขียนโปรแกรม คุณสามารถใช้ Factory Pattern ซึ่งคุณต้องสร้างอ็อบเจ็กต์ของคลาสย่อยใดคลาสหนึ่ง ขึ้นอยู่กับข้อมูลที่กำหนด
คำถามและคำตอบสัมภาษณ์รูปแบบการออกแบบสำหรับผู้มีประสบการณ์
16) อธิบายในรูปแบบซิงเกิลตันว่าควรทำให้เมธอด getinstance() ทั้งหมดซิงโครไนซ์กันหรือเฉพาะส่วนวิกฤตก็เพียงพอแล้ว อันไหนดีกว่ากัน
Syncการทำให้เป็นเกียรติของทั้งหมด getinstance() วิธีการนี้มีค่าใช้จ่ายสูงและจำเป็นเฉพาะระหว่างการเริ่มต้นอินสแตนซ์ Singleton เท่านั้น เพื่อหยุดการสร้างอินสแตนซ์ Singleton อีกอัน ดังนั้น จึงควรซิงโครไนซ์เฉพาะส่วนที่สำคัญเท่านั้น ไม่ใช่ทั้งวิธีการ
17) กล่าวถึงวิธีการเขียนคลาสซิงเกิลตันได้หลายวิธี Java?
เราสามารถเขียนคลาสซิงเกิลตันได้ Java ในสี่วิธี
- ซิงเกิลตันพร้อมฟิลด์สุดท้ายแบบคงที่สาธารณะเริ่มต้นระหว่างการโหลดคลาส
- ซิงเกิลตันที่สร้างโดยคลาสซ้อนกันแบบคงที่หรือที่เรียกว่ารูปแบบตัวยึดซิงเกิล
- Singleton โดยการซิงโครไนซ์วิธีการรับอินสแตนซ์ ()
- ราคาเริ่มต้น Java 5 เป็นต้นไปโดยใช้ Enums
18) อธิบายว่าคุณจะป้องกันการสร้าง singleton อีกอันโดยใช้เมธอด clone() ได้อย่างไร
วิธีที่ต้องการในการป้องกันการสร้างอินสแตนซ์อื่นของซิงเกิลตันคือการไม่ใช้อินเทอร์เฟซ Cloneable และหากคุณเพียงแค่ส่งข้อยกเว้นจากเมธอด clone() “ ไม่ต้องสร้างโคลนของคลาสซิงเกิลตัน”
19) พูดถึงความแตกต่างระหว่าง "โยน" และ "ขว้าง"?
คำสำคัญ “Throw” ใช้เพื่อระบุอย่างชัดเจนว่าเป็นข้อยกเว้น ในขณะที่ “Throws” ใช้เพื่อจัดการข้อยกเว้นที่ตรวจสอบแล้วสำหรับการแจ้งคอมไพเลอร์อีกครั้งว่ามีการจัดการข้อยกเว้น การพ่นจำเป็นต้องใช้ในคำจำกัดความของวิธีการและในขณะที่เรียกใช้วิธีการที่ทำให้เกิดข้อยกเว้นที่ถูกตรวจสอบ
20) พูดถึงคลาสใดใน JDK ที่ใช้รูปแบบซิงเกิลตัน
Java.lang.Runtime คลาสใช้รูปแบบซิงเกิลตันใน JDK
21) กล่าวถึงข้อจำกัดของการใช้รูปแบบซิงเกิลตันคืออะไร?
รูปแบบซิงเกิลตันช่วยให้แน่ใจว่าคลาสมีเพียงอินสแตนซ์เดียวและจัดให้มีจุดเข้าถึงส่วนกลาง แต่ในขณะเดียวกัน สิ่งนี้ก็กลายเป็นข้อจำกัด เนื่องจากคลาสส่วนใหญ่ในแอปพลิเคชันคุณจะต้องสร้างหลายอินสแตนซ์
22) พูดถึงความแตกต่างระหว่าง VO และ JDO คืออะไร?
ความแตกต่างระหว่าง JDO และ VO ก็คือ JDO เป็นเทคโนโลยีถาวรที่แข่งขันกับ Entity Bean ในการพัฒนาแอปพลิเคชันระดับองค์กร ช่วยให้คุณสามารถสร้าง POJO (ออบเจ็กต์ Java แบบเก่าธรรมดา) และคงไว้ในฐานข้อมูลได้
ในขณะที่ VO ย่อมาจาก Value Objects ซึ่งหมายถึงค่าสัมบูรณ์tracรูปแบบการออกแบบที่ใช้ร่วมกับ entity beans, jdbc และอาจรวมถึง JDO เพื่อเอาชนะปัญหาการแยกส่วนและการทำธุรกรรมที่พบได้ทั่วไปในแอปพลิเคชันระดับองค์กร
คำถามสัมภาษณ์เหล่านี้จะช่วยในวีว่าของคุณ (วาจา)
